让你提前认识软件开发(34):数据库的维护
第2部分 数据库SQL语言 数据库的维护 对于某些大型软件产品,一旦商用,必然会存储很多用户信息,这就对产品所使用的数据库(以下简称 业务数据库 )带来了压力。为了保证业务数据库的平稳运行,需要在日常工作中对数据库做一些基本的维护操作。 业务数据库的
第2部分 数据库SQL语言
数据库的维护
对于某些大型软件产品,一旦商用,必然会存储很多用户信息,这就对产品所使用的数据库(以下简称业务数据库)带来了压力。为了保证业务数据库的平稳运行,需要在日常工作中对数据库做一些基本的维护操作。
业务数据库的维护规则如下:
1. 对业务数据库必须进行定期全量备份
业务数据库的定期备份能在数据库被意外破坏时进行快速恢复,备份策略可以根据数据增量大小采用周计划或月计划。
假如备份数据库db_100,则Oracle、Sybase和SQL Server中的操作方法如下:
(1) Oracle用户模式的备份
exp db_100/db_100 owner=db_100 buffer=8192(或64000)
file=exp_db100.dmp(或磁带设备/dev/rmt0)
tables=
rows=y
compress=n
log= exp_db100.log
参数说明:
owner:将要卸出的用户名列表。
buffer:缓冲区大小。
file:由export创建的输出文件的名字。
tables:将要卸出的表名列表。
rows:指明是否卸出表数据的行数,缺省为“y”。
compress:指明在装入期间是否将表数据压缩到一个区域中。如果在卸出数据时,指定参数compress=y,那么装入时,就会将数据压缩到一个初始区域中。这种选择可以保持初始化区域的原始大小。缺省为“y”。
log:指定一个接收有用信息和错误信息的文件。
(2) Sybase中数据库的备份
dump database db_100 with /home/data/db100.dmp(或磁带设备/dev/rmt0)
(3) SQL Server中数据库的备份
use master
go
exec sp_addumpdevice 'disk', 'dev_db100',
disk ='C:\backup\dev_db100.dat'
go
backup database db_100 to dev_db100
go
2. 对业务数据库定期进行数据清理,清理前必须完成备份操作
对每天记录增长较多的日志表采用备份表的机制,即建立和生产表一样结构的备份表,根据项目的需要决定生产表和备份表保留的时间。
假设1000号业务要处理主日志生产表tb_mainlog,要求是该生产表保留2天的记录,备份表保留90天的记录,筛选日期的字段名为startdatetime,分批提交的间隔为60分钟,有一个存储过程pr_backuptable用于备份,则只需如下调用:
exec pr_backuptable ‘tb_mainlog’,’tb_mainlog_bak’,2,90,’startdatetime’, ‘yyyy.mm.dd hh:mi:ss’,60,’’
参数说明:
参数1:生产表名
参数2:备份表名
参数3:生产表保留的天数
参数4:备份表保留的天数
参数5:筛选日期字段名
参数6:筛选日期字段的格式
参数7:分批提交的间隔(单位:分钟)
参数8:用于进行比较的扩展条件
3. 如果数据库没有设置截断日志(或者不归档模式),需要对数据库日志定期维护
Oracle日志的归档模式的设置一般在安装时就需进行;Sybase数据库的选项“trunc log on chkpt”设为true,或者如果此选项设为false,则需要定期进行数据库的日志截断;SQL Server数据库的选项“autoshrink”设为true。
(1) 设置Oracle数据库的日志为不归档模式
操作步骤为:
1) 关闭数据库
2) 按 startup mount方式启动实例
3) 切换模式
alter database noarchivelog;
alter database open;
(2) Sybase中设置数据库db_100中“trunc log on chkpt”为true
use master
go
sp_dboption db_100,'trunc log on chkpt',true
go
use db_100
go
checkpoint
go
(3) SQL Server中设置数据库db_100中“autoshrink”为true
sp_dboption db_100,'autoshrink',true
4. 对数据库索引进行定期维护
对Sybase,SQL Server数据库中的表中的索引要定期进行update statistics维护。如果索引失效,则重建索引。
例如,要更新tb_userinfo表中所有索引中所有列的统计信息,可采用以下语句:
update index statistics tb_userinfo
5. 定期查看数据库任务的运行结果日志和数据库可用空间最大值
在数据库运行过程中,要经常通过日志来查看相关任务的运行结果是否正常,并查看数据库剩余空间数,如果可用空间已经很小了,则要进行一定的文件清理操作。
6. 对数据库进行大批量的增、删、改操作后建议对表进行一致性检查和索引的重建
在经过大规模的操作的时候,有可能会无意中破坏掉数据表的结构,因此需要在操作完成之后对表进行一致性检查。如果发现表结构出现异常,则需要重建表及相应的索引。
在某些业务软件产品中,数据的维护是一项复杂、繁重而长期的工作,相关维护经验也只有在实际操作过程中才能够累积起来。
(本人微博:http://weibo.com/zhouzxi?topnav=1&wvr=5,微信号:245924426,欢迎关注!)
핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

Apple의 최신 iOS18, iPadOS18 및 macOS Sequoia 시스템 릴리스에는 사진 애플리케이션에 중요한 기능이 추가되었습니다. 이 기능은 사용자가 다양한 이유로 손실되거나 손상된 사진과 비디오를 쉽게 복구할 수 있도록 설계되었습니다. 새로운 기능에는 사진 앱의 도구 섹션에 '복구됨'이라는 앨범이 도입되었습니다. 이 앨범은 사용자가 기기에 사진 라이브러리에 포함되지 않은 사진이나 비디오를 가지고 있을 때 자동으로 나타납니다. "복구된" 앨범의 출현은 데이터베이스 손상으로 인해 손실된 사진과 비디오, 사진 라이브러리에 올바르게 저장되지 않은 카메라 응용 프로그램 또는 사진 라이브러리를 관리하는 타사 응용 프로그램에 대한 솔루션을 제공합니다. 사용자는 몇 가지 간단한 단계만 거치면 됩니다.

PHP에서 데이터베이스 연결 오류를 처리하려면 다음 단계를 사용할 수 있습니다. mysqli_connect_errno()를 사용하여 오류 코드를 얻습니다. 오류 메시지를 얻으려면 mysqli_connect_error()를 사용하십시오. 이러한 오류 메시지를 캡처하고 기록하면 데이터베이스 연결 문제를 쉽게 식별하고 해결할 수 있어 애플리케이션이 원활하게 실행될 수 있습니다.

MySQLi를 사용하여 PHP에서 데이터베이스 연결을 설정하는 방법: MySQLi 확장 포함(require_once) 연결 함수 생성(functionconnect_to_db) 연결 함수 호출($conn=connect_to_db()) 쿼리 실행($result=$conn->query()) 닫기 연결( $conn->close())

PHP 웹 사이트를 성공적으로 배포하고 유지하려면 다음 단계를 수행해야 합니다. 웹 서버(예: Apache 또는 Nginx) 선택 PHP 설치 데이터베이스 생성 및 PHP 연결 서버에 코드 업로드 도메인 이름 및 DNS 모니터링 웹 사이트 유지 관리 설정 단계에는 PHP 및 웹 서버 업데이트, 웹 사이트 백업, 오류 로그 모니터링 및 콘텐츠 업데이트가 포함됩니다.

JSON 데이터는 gjson 라이브러리 또는 json.Unmarshal 함수를 사용하여 MySQL 데이터베이스에 저장할 수 있습니다. gjson 라이브러리는 JSON 필드를 구문 분석하는 편리한 방법을 제공하며, json.Unmarshal 함수에는 JSON 데이터를 비정렬화하기 위한 대상 유형 포인터가 필요합니다. 두 방법 모두 SQL 문을 준비하고 삽입 작업을 수행하여 데이터를 데이터베이스에 유지해야 합니다.

Golang의 데이터베이스 콜백 기능을 사용하면 다음을 달성할 수 있습니다. 지정된 데이터베이스 작업이 완료된 후 사용자 정의 코드를 실행합니다. 추가 코드를 작성하지 않고도 별도의 함수를 통해 사용자 정의 동작을 추가할 수 있습니다. 삽입, 업데이트, 삭제, 쿼리 작업에 콜백 함수를 사용할 수 있습니다. 콜백 함수를 사용하려면 sql.Exec, sql.QueryRow, sql.Query 함수를 사용해야 합니다.

MySQL은 오픈 소스 관계형 데이터베이스 관리 시스템입니다. 1) 데이터베이스 및 테이블 작성 : CreateAbase 및 CreateTable 명령을 사용하십시오. 2) 기본 작업 : 삽입, 업데이트, 삭제 및 선택. 3) 고급 운영 : 가입, 하위 쿼리 및 거래 처리. 4) 디버깅 기술 : 확인, 데이터 유형 및 권한을 확인하십시오. 5) 최적화 제안 : 인덱스 사용, 선택을 피하고 거래를 사용하십시오.

Go 표준 라이브러리 데이터베이스/sql 패키지를 통해 MySQL, PostgreSQL 또는 SQLite와 같은 원격 데이터베이스에 연결할 수 있습니다. 데이터베이스 연결 정보가 포함된 연결 문자열을 생성합니다. sql.Open() 함수를 사용하여 데이터베이스 연결을 엽니다. SQL 쿼리 및 삽입 작업과 같은 데이터베이스 작업을 수행합니다. 리소스를 해제하기 위해 defer를 사용하여 데이터베이스 연결을 닫습니다.
