현재 위치 - 회사기업대전 - 기업 정보 공시 - 데이터베이스를 어떻게 유지하나요?

데이터베이스를 어떻게 유지하나요?

데이터베이스의 일일 유지 관리(참고)

데이터베이스의 일일 유지 관리는 시스템 관리자의 중요한 책임입니다. 그 내용은 주로 다음과 같은 부분으로 구성됩니다:

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 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

---------------

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[page]

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)

go

·테이블을 삭제하는 명령 형식은 다음과 같습니다.

DROP TABLE table_name

go

·The 테이블을 승인하는 명령 형식은 다음과 같습니다.

GRANT

ON table_name TO user_name

go

·권한을 취소하는 명령 형식은 다음과 같습니다.

REVOKE

REVOKE

p>

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)-00(0)- 05727(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는 새 비밀번호, loginname은 로그인입니다. 이름.

Baidu 검색: 데이터베이스 일일 유지 관리(참조)

관련 기사

Sybase 저장 프로시저의 설정 및 사용

SYBASE dbcc

통신업체의 경쟁 무기 - 데이터 웨어하우스 및 데이터 마이닝

SCOUNIX에서 테이프 드라이브 설치 및 백업

StoredProcedure(저장 프로시저) 작성 경험 및 최적화 조치

SYBASE 데이터베이스 로그 세부 정보

일반적인 데이터베이스 시스템 비교 - SYBASE 및 SQL SERVER

LINUX용 SYBASE ASE 설치 및 SYBASE에 대한 Perl 연결

Sybase 데이터베이스 애플리케이션 (1)

Sybase ASE 설치

도움이 되셨다면 기억해두시고 만족스러운 답변으로 받아주시길 바랍니다. 감사합니다! 행복한 삶을 기원합니다!

바엘라

copyright 2024회사기업대전