1. 시스템 데이터 백업
SYBASE 시스템의 백업 및 복구 메커니즘은 시스템 장애 시 데이터를 다시 가져올 수 있는 가능성을 보장합니다. SQL Server는 두 가지 유형의 복구 메커니즘을 제공합니다. 하나는 시스템이 자동으로 완료하는 복구입니다. 이 조치는 시스템이 시작될 때마다 자동으로 수행되어 시스템이 붕괴되기 전에 완료되도록 합니다.
데이터베이스 장치에 기록되고 완료되지 않은 트랜잭션은 롤백됩니다. 다른 유형은 DUMP 및 LOAD 명령을 통해 실행되는 수동 복구입니다.
작업 백업 및 복원 작업. 따라서 트랜잭션 로그 및 데이터베이스의 정기적인 백업은 매우 중요한 일일 유지 관리 작업입니다.
1. 데이터베이스 백업
마운팅 기준점을 제공하려면 생성 후 각 데이터베이스를 언로드해야 합니다. 그 후 예정된 기간에 따라 언로드하십시오. 예를 들어 데이터베이스는 매주 금요일에 언로드됩니다.
일반적인 데이터베이스 시스템의 경우 데이터베이스 언로드 주기는 일주일에 한 번을 권장합니다.
계획된 기간에 따라 데이터베이스를 언로드하는 것 외에도 각 작업 후에는 로그 없이 데이터베이스를 언로드해야 합니다. 예:
·매번 DUMP TRAN WITH NO_LOG를 강제로 실행합니다(데이터베이스 디스크 오버플로로 인해).
·빠른 복사를 수행하려면 선택/대량 복사를 허용하기 위해 매번 sp_dboption을 사용합니다. 또는 SELECT INTO 명령을 사용하여 영구 테이블을 생성하거나
WRITETEXT 명령을 사용하세요.
데이터베이스를 언로드하는 명령은 다음과 같습니다.
DUMP DATABASE Database_name
TO dump_device
database_name은 언로드할 데이터베이스의 이름입니다. 언로드된 경우 dump_device는 마운트 해제된 장치의 이름입니다. 장치 정보를 얻으려면 시스템 프로시저 sp_helpdevice를 사용하십시오
.
다음 명령은 my_db 데이터베이스를 언로드하는 데 사용됩니다:
DUMP DATABASE my_db
TO db_bk_dev
2.
p>트랜잭션 로그가 데이터베이스와 동일한 장치에 있는 경우 트랜잭션 로그를 데이터베이스와 별도로 백업하면 안 됩니다. 이는 마스터 데이터베이스와 4M 미만의 사용자 데이터베이스에 해당됩니다
. 일반적으로 데이터베이스 시스템의 로그는 서로 다른 장치에 저장되므로 DUMP TRAN 명령을 사용하여 로그를 개별적으로 백업할 수 있습니다.
트랜잭션 로그를 백업하는 기간은 데이터 복구 정도에 직접적인 영향을 미치므로 매일 백업하는 것이 좋습니다.
트랜잭션 로그를 백업하는 명령 형식은 다음과 같습니다.
DUMP TRANsaction 데이터베이스_이름
[TO dump_device]
[WITH TRUNCATE_ONLY| WITH NO_LOG| WITH NO_TRUNCATE]
여기서 Database_name은 백업할 트랜잭션의 데이터베이스 이름이고, dump_device는 백업 장치의 이름입니다. WITH NO_TRUNCATE인 경우에만 백업할 수 있습니다.
TRUNCATE_ONLY 또는 WITH NO_LOG 절이 포함된 장비입니다.
참고: DUMP TRAN 대신 항상 DUMP DATEBASE(데이터베이스 및 해당 로그 백업)를 사용하는 경우 트랜잭션 로그가 새로 고쳐지지 않고
매우 커집니다.
마스터 데이터베이스 및 소규모 데이터베이스의 경우 DUMP DATEBASE를 실행할 때마다 로그를 새로 고치려면 DUMP TRANsaction 명령을 실행해야 합니다.
다음 명령은 db160 데이터베이스의 트랜잭션 로그를 백업 장치에 백업합니다.
DUMP TRANsaction db160
TO db_log_bk_dev
WITH TRUNCATE_ONLY
3. 백업 데이터베이스와 해당 로그 간의 상호 작용
데이터베이스를 한 번 이상 언로드하기 전에 트랜잭션 로그를 언로드하는 것은 의미가 없습니다. 다음 그림은 백업 데이터베이스와 해당 로그 간의 관계를 보여줍니다.
화요일 오후 5시 1분에 하드웨어 이외의 오류가 발생하는 경우 테이프 5를 마운트하기만 하면 됩니다(다음 섹션 참조). : 데이터 복구), 테이프 5
가 오후 5시에 막 백업되었기 때문에 백업과 로딩 사이 1분 동안 데이터만 손실되었습니다.
그런데 화요일 오후 4시 49분에 만료된다면 어떻게 될까요? 이 경우 테이프 1이 로드됩니다(금요일 오후 5시에 언로드됨). 그런 다음
테이프 2, 3, 4를 순서대로 로드하세요. 이로써 화요일 오전 10시를 기점으로 시스템이 원래대로 복구되며, 화요일 작업물 대부분이 손실됩니다. 이
예는 트랜잭션을 자주 오프로드하는 것의 중요성을 보여줍니다.
2. 시스템 장애 시 데이터베이스 시스템 복원
사용자 데이터베이스가 저장되어 있는 기기에 장애가 발생하여 데이터베이스가 손상되거나 접속이 불가능할 경우 최신 데이터베이스 백업 및 후속 A 트랜잭션 로그 백업을 통해
데이터베이스를 복원할 수 있습니다. 현재 트랜잭션 로그가 손상되지 않은 장치에 존재한다고 가정하고 WITH NO_TRUNCATE 옵션과 함께 DUMP TRANsaction 명령을 사용하여 이를 덤프합니다.
데이터베이스를 복원하려면 다음 단계를 따르세요.
1. 로그가 별도의 장치에 있는 경우 NO_TRUNCATE 옵션과 함께 DUMP TRANsaction 명령을 사용하여 손상된 또는 사용자 데이터베이스 트랜잭션 로그에 액세스할 수 없습니다.
2. 소멸된 장치 할당 데이터베이스의 장치 사용량을 확인하려면 다음 쿼리를 사용하십시오. 동일한 목적을 위해 동일한 공간 블록을 할당해야 합니다.
다음 쿼리는 mydb 데이터베이스에 할당된 장치 사용량과 크기를 표시합니다.
SELECT segmap, size FROM sysusages
WHERE dbid =
(SELECT dbid FROM sysdatabases WHERE name = “mydb”)
3 쿼리 출력을 확인합니다. segmap 열의 '3'은 데이터 할당을 나타내고, '4'는 로그 할당을 나타냅니다. 크기 열은 2K 데이터 블록의 수를 나타냅니다
. 이 정보의 순서, 사용법 및 크기 섹션에 주의하십시오. 예를 들어 출력은 다음과 같습니다.
segmapSize
--------------- p>
310240//실제 크기: 20M
35120//실제 크기: 10M
45120//실제 크기: 10M
31024//실제 크기: 2M
42048//실제 크기: 4M
4 손상된 장치에서 데이터베이스를 삭제하려면 DROP DATABASE 명령을 사용하세요. . 시스템이 오류를 보고하면 DBCC DBREPAIR 명령의 DROPDB 옵션을 사용하십시오.
5. 데이터베이스를 삭제한 후 sp_dropdevice를 사용하여 손상된 장치를 삭제합니다.
6. DISK INIT를 사용하여 새 데이터베이스 장치를 초기화합니다.
7. 데이터베이스를 다시 구축합니다. CREATE DATABASE 명령을 사용하여 첫 번째 논리 장치를 포함하여 이전 sysusages 테이블의 모든 행을 복사합니다.
위의 예에서 명령은 다음과 같습니다:
CREATE DATABASE mydb
ON datadev1=20, datadev2=10
LOG ON logdev1= 10
8. ALTER DATABASE 명령을 사용하여 나머지 항목을 다시 작성합니다. 이 예에서 datadev1에 더 많은 공간을 할당하려면 명령은 다음과 같습니다.
ALTER DATABASE mydb ON datadev1=2
9 LOAD DATABASE를 사용하여 데이터베이스를 다시 로드한 다음 LOAD를 사용합니다. TRAN은 이전에 언로드된 로그를 로드합니다.
LOAD DATABASE 명령 구문은 다음과 같습니다.
LOAD DATABASE 데이터베이스_이름
FROM dump_device
LOAD TRANsaction 명령 구문은 다음과 같습니다. :
LOAD TRANsaction Database_name
FROM dump_device
데이터베이스 및 트랜잭션 로그를 덤프하는 기본 권한은 데이터베이스 소유자에게 속하며 다른 사용자에게 전달될 수 있습니다. 데이터베이스 및 트랜잭션 로그를 로드할 수 있는 권한 또한 데이터베이스 소유자가 소유하지만
전이적이지는 않습니다.
2. 사용자 정보 테이블을 생성하고 정보 테이블을 인증합니다.
시스템 유지 관리 담당자의 또 다른 일상 작업은 사용자를 위한 새로운 정보 테이블을 생성하고 이를 인증하는 것입니다. 테이블을 생성하고 테이블을 승인하는 방법은 이미 논의되었습니다.
여기에서는 관련 명령 구문만 작성합니다.
·테이블을 생성하는 명령은 다음과 같습니다:
CREATE TABLE table_name
(column_1 datatype [NULL | p> 컬럼_2......
)
이동
ALTER TABLE 테이블_이름
ADD PRIMARY KEY(column_list) p>
go
·테이블을 삭제하는 명령 형식은 다음과 같습니다.
DROP TABLE table_name
go
·The 테이블을 인증하는 명령 형식은 다음과 같습니다.
GRANT {ALL|permission_list}
ON table_name TO user_name
go
·명령 권한을 취소하는 형식은
REVOKE {ALL|permission_list}
ON table_name FROM user_name
go
3.
시스템 관리자의 또 다른 일상 업무는 시스템 작동을 모니터링하는 것입니다. 주로 다음과 같은 측면이 있습니다:
1. 현재 사용자 및 프로세스의 정보를 모니터링합니다.
시스템 프로세스 사용: sp_who
참고: 이 명령은 다음을 표시합니다. 현재 시스템의 모든 정보 등록된 사용자 및 프로세스 정보 중 특정 시스템의 정보를 나타내는 표는 다음과 같습니다.
SpidStatusLoginamehostnameblkdbnamecmd
---------------------- - --------------
1RunningSascosysv0MasterSELECT
2SleepingNULL0MasterNETWORK 핸들
3SleepingNULL0MasterDEADLOCK TUNE
4SleepingNULL0MasterMIRROR HANDLER
5SleepingNULL0MasterHOUSEKEEPER
6SleepingNULL0MasterCHECKPOINT SLEEP
왼쪽에서 오른쪽으로 표시: 프로세스 번호, 현재 상태, 사용자 등록 이름, 호스트 이름, 점유된 블록 수, 데이터베이스 이름 및 현재 명령.
모니터링 중에 총 프로세스 수가 최대 연결 수에 가까운 것으로 확인되면(시스템 프로세스를 사용하여 확인: sp_configure "user conn" 확인) 비활성 프로세스를 제거해야 합니다.
또는 관련 없는 프로세스를 차단하여 시스템의 정상적인 작동을 보장합니다. 또한 불법 사용자나 자체 사용 범위에 속하지 않는 데이터베이스를 사용하는 사용자를 모니터링할 수도 있습니다.
2. 대상이 차지하는 공간을 모니터링합니다.
시스템 프로세스 사용: sp_spaceused
설명: 이 프로세스는 행 수, 데이터 수를 표시합니다. 페이지 및 대상 또는 모든 대상이 차지하는 현재 데이터베이스 공간의 데이터 페이지 수입니다. 다음 표는 데이터베이스 로그 정보입니다.
테이블:
NameRow_totalreserveddataIndex_sizeunused
---------------- -- -----------------------------
Syslogs사용 불가32KB32KB0KB사용 불가
매일 모니터링할 주요 대상은 사용자 데이터베이스, 데이터베이스 로그 테이블(syslogs) 및 청구 원본 데이터 테이블 등입니다. 점유된 공간이 너무 큰 것으로 확인되면 다른 대상에 대한 로그 테이블을 덤프하거나 공간을 확장하거나 정크 데이터를 지워야 합니다.
3. SQL Server 통계 모니터링
시스템 프로세스 사용: sp_monitor
설명: sp_monitor는 SQL Server의 기록 통계를 표시합니다. 시스템 통계:
Last_runCurrent_runSeconds
-------------------------------- ---------------------
2000년 5월 13일 오후 1:272000년 5월 13일 3 :01PM5678
CPU_busyIO_busyIdle
--------------------------------- ------- -------------
16(6)-0%0(0 )-0%5727( 5672)-99%
Packets_receivedPackets_sentPacket_errors
------------------------- -------- ---------------------
21 (17)100(97)0( 0)
Total_readTotal_writeTotal_errorsConnections
------------------------- -------- ----------
785(366)311(113)0(0) 3(2)
위 표에는 현재 실행 중인 통계의 마지막 시간, 현재 시간, 간격 초, CPU 사용량, IO 사용량, 패킷 송수신 상태, 시스템 읽기 및 쓰기 상태가 나와 있습니다.
상태 및 기타 정보를 입력하고 기록합니다.
4. 시스템 데이터의 보안을 유지하고 사용자 비밀번호를 주기적으로 변경합니다.
시스템의 보안을 보장하기 위해 데이터를 보호하기 위해 시스템 관리자는 시스템의 실제 상황을 기반으로 일련의 보안 조치를 구현해야 합니다. 그중에서도 사용자 비밀번호를 주기적으로 변경하는 것은
일반적이고 매우 효과적인 방법입니다.
사용자 비밀번호 변경은 시스템 프로시저 sp_password를 호출하여 수행됩니다. Sp_password 구문은 다음과 같습니다.
sp_password caller_password,new_password [,loginame]
여기서 caller_password는 로그인 비밀번호(이전 비밀번호), new_password는 새 비밀번호, logine은 로그인입니다. 이름.