検索
ホームページデータベースmysql チュートリアル让你提前认识软件开发(34):数据库的维护

让你提前认识软件开发(34):数据库的维护

Jun 07, 2016 pm 03:58 PM
データベース維持するソフトウェア開発

第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,欢迎关注!)
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
新しいMySQLユーザーに権限を付与する方法新しいMySQLユーザーに権限を付与する方法May 09, 2025 am 12:16 AM

tograntpermissionstonewmysqlusers、フォローステープ:1)Accessmysqlasauserwithsufthiveerprivileges、2)createanewuser withthecreateusercommand、3)usethegrantcommandtospecifypermissionsionsionsionsionsionsionsionsionsionsionselect、挿入、挿入、挿入、更新、4)

MySQLにユーザーを追加する方法:ステップバイステップガイドMySQLにユーザーを追加する方法:ステップバイステップガイドMay 09, 2025 am 12:14 AM

toadduusersinmysqucrectivally andcurally、soflowthesteps:1)usethecreateuserstatementtoaddanewuser、指定するhostandastrongpassword.2)補助金を使用して、補助金を使用して、補助すること、

MySQL:複雑な権限を持つ新しいユーザーの追加MySQL:複雑な権限を持つ新しいユーザーの追加May 09, 2025 am 12:09 AM

toaddanewuserwithpermissionsinmysql、followthesesteps:1)createtheuserwithcreateuser'newuser '@' localhost'identifiedifiedifiedifiedby'pa ssword ';。2)grantreadacestoalltablesin'mydatabase'withgrantselectonmydatabase.to'newuser'@'localhost';。3)grantwriteaccessto '

MySQL:文字列データ型とコレクションMySQL:文字列データ型とコレクションMay 09, 2025 am 12:08 AM

MySQLの文字列データ型には、CHAR、VARCHAR、バイナリ、Varbinary、BLOB、およびテキストが含まれます。照合は、文字列の比較とソートを決定します。 1.Charは固定長の文字列に適しており、Varcharは可変長文字列に適しています。 2.バイナリとVarbinaryはバイナリデータに使用され、BLOBとテキストは大規模なオブジェクトデータに使用されます。 3. UTF8MB4_UNICODE_CIなどのルールのソートは、高度と小文字を無視し、ユーザー名に適しています。 UTF8MB4_BINは症例に敏感であり、正確な比較が必要なフィールドに適しています。

MySQL:Varcharsにはどの長さを使用すればよいですか?MySQL:Varcharsにはどの長さを使用すればよいですか?May 09, 2025 am 12:06 AM

最適なMySQLVarcharの列の長さの選択は、データ分析に基づいており、将来の成長を検討し、パフォーマンスの影響を評価し、文字セットの要件を評価する必要があります。 1)データを分析して、典型的な長さを決定します。 2)将来の拡張スペースを予約します。 3)パフォーマンスに対する大きな長さの影響に注意してください。 4)ストレージに対する文字セットの影響を考慮します。これらの手順を通じて、データベースの効率とスケーラビリティを最適化できます。

mysql blob:制限はありますか?mysql blob:制限はありますか?May 08, 2025 am 12:22 AM

mysqlblobshavelimits:tinyblob(255bytes)、blob(65,535bytes)、mediumblob(16,777,215bytes)、andlongblob(4,294,967,295bytes).tousebl難易度:1)PROFFORMANCESANDSTORERGEBLOBSEXTERNALLY;

MySQL:ユーザーの作成を自動化するための最良のツールは何ですか?MySQL:ユーザーの作成を自動化するための最良のツールは何ですか?May 08, 2025 am 12:22 AM

MySQLでユーザーの作成を自動化するための最良のツールとテクノロジーには、次のものがあります。1。MySQLWorkBench、中小サイズの環境に適した、使いやすいがリソース消費量が高い。 2。アンシブル、マルチサーバー環境に適した、シンプルだが急な学習曲線。 3.カスタムPythonスクリプト、柔軟性がありますが、スクリプトセキュリティを確保する必要があります。 4。大規模な環境に適した人形とシェフ、複雑ですがスケーラブル。選択する際には、スケール、学習曲線、統合のニーズを考慮する必要があります。

mysql:blob内で検索できますか?mysql:blob内で検索できますか?May 08, 2025 am 12:20 AM

はい、youcansearchinsideablobinmysqlusingspecifictechniques.1)converttheblobtoautf-8stringwithconvert function andsearchusinglike.2)

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)