SSC Database 백업/복구

※ "ssc_2222"를 해당 키워드로 변경 후 사용
※ "<PASSWORD>"를 비밀번호로 변경 후 사용

#################################################
#
# Oracle DB 백업
#
#################################################
sqlplus "system/manager as sysdba"
  SELECT * FROM DBA_DIRECTORIES;
  CREATE DIRECTORY DIR_SSC_BACKUP AS 'C:\database\backup\oracle';
  GRANT READ,WRITE ON DIRECTORY DIR_SSC_BACKUP TO u_ssc_2222;

MKDIR C:\database\backup\oracle
expdp "u_ssc_2222/<PASSWORD>@ORCL" SCHEMAS=u_ssc_2222 DIRECTORY=DIR_SSC_BACKUP DUMPFILE=db_ssc_2222 LOGFILE=db_ssc_2222

#################################################
#
# Oracle DB 복원
#
#################################################
sqlplus "system/manager as sysdba"
  -- 스키마 및 테이블스페이스 샥제
  -- Oracle 12c의 이전버전 호환을 위한 설정
  ALTER SESSION SET "_ORACLE_SCRIPT"=TRUE;
  DROP USER u_ssc_2222 CASCADE;
  DROP TABLESPACE ts_ssc_2222 INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS;

  -- 스키마 및 테이블스페이스 다시 생성
  ALTER SESSION SET "_ORACLE_SCRIPT"=TRUE;
  CREATE TABLESPACE ts_ssc_2222 DATAFILE 'C:\database\oradata\orcl\ts_ssc_2222.dbf' SIZE 2M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL AUTOALLOCATE;
  CREATE USER u_ssc_2222 IDENTIFIED BY "<PASSWORD>";
  ALTER USER u_ssc_2222 DEFAULT TABLESPACE ts_ssc_2222;
  ALTER USER u_ssc_2222 TEMPORARY TABLESPACE TEMP;
  GRANT CONNECT, DBA, RESOURCE TO u_ssc_2222;

# 복원
impdp "u_ssc_2222/<PASSWORD>@ORCL" SCHEMAS=u_ssc_2222 DIRECTORY=DIR_SSC_BACKUP DUMPFILE=db_ssc_2222.dmp LOGFILE=db_ssc_2222.log

sqlplus "system/manager as sysdba"
  -- 필요한 경우 디렉토리 삭제
  DROP DIRECTORY DIR_SSC_BACKUP;

REM ---------------------------------------------

#################################################
#
# Microsoft SQL DB 백업
#
#################################################
sqlcmd -S tcp:10.10.10.105 -U SA -P<PASSWORD> -Q "BACKUP DATABASE [db_ssc_2222] TO DISK = N'C:\database\backup\mssql\db_ssc_2222.bak' WITH NOFORMAT, NOINIT, NAME = 'db_ssc_2222-full', SKIP, NOREWIND, NOUNLOAD, STATS = 10"

#################################################
#
# Microsoft SQL DB 복원
#
#################################################
백업 복원은 SSMS(SQL Server Management Studio)에서 진행

※WAS 시작 전 JDK 11에서 <JDK Dir>/conf/security/java.security의 아래 부분을 편집한다.
  jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, \
      DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \
      include jdk.disabled.namedCurves
  부분에서 TLSv1과 TLSv1.1 항목을 제거한다.

1. 데이터베이스 생성
  ①좌측트리메뉴-데이터베이스 > [↖팝업메뉴] > 새 데이터베이스
  ②좌측트리메뉴-일반 > 데이터베이스 이름(N): db_ssc_2222
  ③좌측트리메뉴-옵션 > 데이터 정렬(C): Korean_Wansung_CS_AS
  ④"확인" 버튼을 클릭하여 생성 진행

2. 백업 복원
  ◎백업 복원 전
    -좌측트리메뉴-데이터베이스 > db_ssc_2222 > [↖팝업메뉴] > 태스크 > 오프라인 상태로 만들기
  ◎복원 진행
    ①좌측트리메뉴-데이터베이스 > db_ssc_2222 > [↖팝업메뉴] > 태스크 > 복원 > 데이터베이스
    ②좌측트리메뉴-일반 > ☑장치 > BAK파일 추가 : 복원할 백업 세트에 해당 백업이 표시되어야 함.
    ③좌측트리메뉴-일반 > 대상 > 데이터베이스 선택
    ④좌측트리메뉴-옵션 > ☑기존 데이터베이스 덮어쓰기, ☑대상 데이터베이스에 대한 기존 연결 닫기
    ⑤"확인" 버튼을 클릭하여 백업 복원 진행

3. 사용자 추가
  ①좌측트리메뉴-보안 > 로그인 > [↖팝업메뉴] > 새 로그인
  ②좌측트리메뉴-일반 > 로그인 이름(N) : u_ssc
  ③좌측트리메뉴-일반 > ☑SQL Server 인증(S) > <PASSWORD> 입력
  ④좌측트리메뉴-일반 > □다음 로그인할 때 반드시 암호 변경
  ⑤좌측트리메뉴-서버 역할 > ☑public
  ⑥좌측트리메뉴-사용자 매핑 > 이 로그인으로 매핑된 사용자 > ☑db_ssc_2222
  ⑦좌측트리메뉴-사용자 매핑 > 데이터베이스 역할 멤버 자격: ☑db_owner, ☑public
  ⑧좌측트리메뉴-상태 > 데이터베이스 엔진 연결 권한 > ☑허용
  ⑨좌측트리메뉴-상태 > 로그인 > ☑허용
  ※오류가 발생할 경우
    USE db_ssc_2222;
    EXEC sp_change_users_login 'Auto_Fix', 'u_ssc';

REM ---------------------------------------------

#################################################
#
# MySQL 백업
#
#################################################
MKDIR C:\database\backup\mysql
mysqldump --single-transaction --routines --triggers -u root -p<PASSWORD> db_ssc_2222 > C:\database\backup\mysql\db_ssc_2222.sql

#################################################
#
# MySQL 복원
#
#################################################
mysql -u root -p<PASSWORD>
  -- DB와 사용자를 삭제한다.
  DROP DATABASE IF EXISTS db_ssc_2222;
  DROP USER IF EXISTS 'u_ssc'@'localhost';
  DROP USER IF EXISTS 'u_ssc'@'%';
  -- DB와 사용자를 생성한다.
  CREATE DATABASE db_ssc_2222 CHARACTER SET utf8mb3 COLLATE utf8mb3_bin;
  CREATE USER 'u_ssc'@'localhost' IDENTIFIED BY '<PASSWORD>';
  CREATE USER 'u_ssc'@'%' IDENTIFIED BY '<PASSWORD>';
  GRANT ALL PRIVILEGES ON db_ssc_2222.* TO 'u_ssc'@'localhost';
  GRANT ALL PRIVILEGES ON db_ssc_2222.* TO 'u_ssc'@'%';

# 복원
mysql -u root -p<PASSWORD> db_ssc_2222 < C:\database\backup\mysql\db_ssc_2222.sql
위로 스크롤