Fastore數(shù)據(jù)庫(kù)備份恢復(fù)和日常維護(hù)
上篇文章給大家具體講解了Fastore數(shù)據(jù)庫(kù)部署安裝,這篇文章再展開(kāi)給大家講解下Fastore數(shù)據(jù)庫(kù)備份恢復(fù)和日常維護(hù),希望能對(duì)你們有所幫助,創(chuàng)作不易,如果喜歡請(qǐng)點(diǎn)個(gè)關(guān)注支持一下!一、備份恢復(fù)概述
在數(shù)據(jù)庫(kù)運(yùn)行前或數(shù)據(jù)遷移時(shí),將數(shù)據(jù)通過(guò)各種手段鏡像拷貝到備份媒質(zhì)上。 在數(shù)據(jù)庫(kù)運(yùn)行過(guò)程中,使用運(yùn)行在數(shù)據(jù)庫(kù)中的備份工具對(duì)數(shù)據(jù)庫(kù)進(jìn)行備份。 動(dòng)態(tài)備份通過(guò)配置的定時(shí)任務(wù)觸發(fā)。 當(dāng)FaStore運(yùn)行正常時(shí),將共享內(nèi)存中數(shù)據(jù)庫(kù)拷貝到磁盤(pán)。全量備份通過(guò)gmbar工具備份持久化文件(Redo日志文件和Data文件)。 當(dāng)FaStore運(yùn)行正常時(shí),將共享內(nèi)存中數(shù)據(jù)庫(kù)表定義和表數(shù)據(jù)以文本方式導(dǎo)出。邏輯備份通過(guò)gmdcp工具備份表定義和表數(shù)據(jù)。 業(yè)務(wù)系統(tǒng)的數(shù)據(jù)庫(kù)損壞,不能通過(guò)故障定位、動(dòng)態(tài)恢復(fù)等手段修復(fù)的情況下而采用基線恢復(fù)至最近一次基線狀態(tài),并根據(jù)實(shí)際情況采用動(dòng)態(tài)恢復(fù)將業(yè)務(wù)系統(tǒng)恢復(fù)至最近一次備份前的狀態(tài)。 業(yè)務(wù)系統(tǒng)的數(shù)據(jù)庫(kù)或業(yè)務(wù)程序因客觀因素,例如誤操作等,損壞單個(gè)或多個(gè)數(shù)據(jù),根據(jù)實(shí)際情況進(jìn)行動(dòng)態(tài)恢復(fù)將業(yè)務(wù)系統(tǒng)恢復(fù)至最近一次備份前的狀態(tài)。二、全量備份
全量備份是指按一定時(shí)間隔保留數(shù)據(jù)庫(kù)的多個(gè)歷史備份,當(dāng)持久化文件異常、誤操作時(shí)恢復(fù)數(shù)據(jù)庫(kù)。
建議每天定時(shí)自動(dòng)觸發(fā)進(jìn)行一次全量備份。需要手工執(zhí)行全量備份的典型場(chǎng)景如下: 1.1 數(shù)據(jù)庫(kù)升級(jí)前。 1.2 誤操作丟失用戶(hù)數(shù)據(jù)。 FaStore運(yùn)行正常時(shí),持久化文件(Redo日志文件和Data文件)損壞。 FaStore運(yùn)行正常時(shí),持久化文件(Redo日志文件和Data文件)無(wú)法使用。- 在業(yè)務(wù)閑時(shí)進(jìn)行備份。
Redo日志文件和Data文件。其中Data文件存放在Data目錄,Redo日志文件存放在Redo目錄,Data目錄路徑和Redo目錄路徑在配置文件“${GMDB_HOME}/config/server.ini”中配置。如果“DATA_PATH”和“REDO_PATH”配置項(xiàng)值為空,則“DATA_PATH”和“REDO_PATH”默認(rèn)值為“${GMDB_HOME}/data”和“${GMDB_HOME}/redo”。4.1 創(chuàng)建備份目錄:
假設(shè)備份目錄為“backup_dir”,“backup_dir”目錄的空閑空間需要大于Data目錄和Redo目錄使用空間的總和。4.2 檢查gmserver進(jìn)程是否正常:
gmp系統(tǒng)顯示類(lèi)似如下信息,表明gmserver進(jìn)程運(yùn)行正常。UID PID PPID %CPU START TTY TIME CMD
gmdb 20240 1 32.4 00:39 pts/6 00:55:12 gmserver
“backup_path”為備份目錄“backup_dir”的絕對(duì)路徑,“-c”表示采用壓縮方式備份。gmbar -b /backup_dir -c
<97 fastore11 [gmdb1] /home/gmdb1>gmbar -b /backup_dir -c
Backup device ... [100%].
Backup redolog ... [100%].
Backup database to /backup_dir success.
4.4 檢查備份文件:
ls -l /backup_dir
<98 fastore11 [gmdb1] /home/gmdb1>ls -l /backup_dir
total 0
drwx------ 1 gmdb1 onip 44 Sep 15 16:03 gmdb_data_bak
三、邏輯備份
邏輯備份是指將數(shù)據(jù)庫(kù)中表定義和表數(shù)據(jù)以文本方式導(dǎo)出,當(dāng)數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)異常時(shí),恢復(fù)數(shù)據(jù)。 建議每天定時(shí)自動(dòng)觸發(fā)進(jìn)行一次邏輯備份。需要手工執(zhí)行邏輯備份的典型場(chǎng)景如下:- >>數(shù)據(jù)庫(kù)升級(jí)時(shí)涉及表定義變更。
- >>數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)異常。
- >>在業(yè)務(wù)閑時(shí)進(jìn)行備份。
共享內(nèi)存中數(shù)據(jù)庫(kù)的表定義和表數(shù)據(jù)。5.1 創(chuàng)建備份目錄:
假設(shè)備份目錄為“txt_backup_dir_date”,“txt_backup_dirdate”目錄的空閑空間大于內(nèi)存數(shù)據(jù)庫(kù)總大小。5.2 檢查gmserver進(jìn)程是否正常:
gmp系統(tǒng)顯示類(lèi)似如下信息,表明gmserver進(jìn)程運(yùn)行正常。UID PID PPID %CPU START TTY TIME CMD
gmdb 20240 1 32.4 00:39 pts/6 00:55:12 gmserver
gmdcp -c /as dba -e -p /backup_dir/txt_backup_dir
注:-c參數(shù)輸入連接串,-e參數(shù)指定導(dǎo)出操作,-p參數(shù)指定到處目錄,可根據(jù)參數(shù)指定導(dǎo)入導(dǎo)出操作以及多帶帶導(dǎo)出表結(jié)構(gòu)表數(shù)據(jù)等。
<114 fastore11 [gmdb1] /backup_dir/txt_backup_dir>gmdcp -c /as dba -e -p /backup_dir/txt_backup_dir
Start to export definition...
Export definition of user "sysman" successfully.
Export definition of table "sys.fastore_jobs" successfully.
Export definition successfully.
Start to export data...
Export "sys.fastore_jobs" successfully.
Export data successfully.
All job finished, total time 0.154 seconds.
5.4 檢查文件是否存在:
<115 fastore11 [gmdb1] /backup_dir/txt_backup_dir>ls -l
total 8
-rw------- 1 gmdb1 onip 558 Sep 15 16:13 gmdb.sql
-rw------- 1 gmdb1 onip 386 Sep 15 16:13 sys.fastore_jobs.sql
-rw------- 1 gmdb1 onip 0 Sep 15 16:13 sys.fastore_jobs.unl
全量恢復(fù)是指將全量備份生成的持久化文件(Redo日志文件和Data文件)導(dǎo)入到數(shù)據(jù)庫(kù),恢復(fù)數(shù)據(jù)庫(kù)。 執(zhí)行全量恢復(fù)的典型場(chǎng)景如下:- >>數(shù)據(jù)庫(kù)升級(jí)失敗。
- >>數(shù)據(jù)庫(kù)升級(jí)成功后,系統(tǒng)運(yùn)行異?;貪L。
- >>持久化文件(Redo日志文件和Data文件)正常,共享內(nèi)存不存在。
全量備份生成的持久化文件(Redo日志文件和Data文件)。4.1 以安裝用戶(hù)登錄主機(jī)停止數(shù)據(jù)庫(kù):
4.2 檢查gmserver是否停止:
gmp
gmadm -s gmserver ----強(qiáng)制停止命令
4.3 備份Data目錄和Redo目錄
Data目錄路徑和Redo目錄路徑在配置文件“${GMDB_HOME}/config/server.ini”中配置。如果“DATA_PATH”和“REDO_PATH”配置項(xiàng)值為空,則“DATA_PATH”和“REDO_PATH”默認(rèn)值為“${GMDB_HOME}/data”和“${GMDB_HOME}/redo”。4.4 清除共享內(nèi)存:
4.5 系統(tǒng)顯示類(lèi)似如下信息,表明共享內(nèi)存已經(jīng)刪除。Successfully delete shared memory.
4.6 恢復(fù)數(shù)據(jù)庫(kù):
gmbar -r backup_path -force
backup_path為全量備份文件所在路徑,-force表示不顯示提示信息,強(qiáng)制恢復(fù)。
系統(tǒng)顯示類(lèi)似如下信息,表明數(shù)據(jù)庫(kù)恢復(fù)成功。load device ... [100%] Flush device ... [100%].
Copy redolog ... [100%].
Rebuild redolog ... [100%].
Restore from file succeed.
4.7 啟動(dòng)數(shù)據(jù)庫(kù):
4.8 檢查gmserver進(jìn)程:
gmsql /as dba "exit;" | grep "Successfully CONNECT to DB"
系統(tǒng)顯示類(lèi)似如下信息,則表示啟動(dòng)成功,否則請(qǐng)等待10秒再執(zhí)行命令檢查。Successfully CONNECT to DB.
4.9 檢查數(shù)據(jù)庫(kù)準(zhǔn)確性
五、邏輯恢復(fù)
邏輯恢復(fù)是指將邏輯備份生成的表定義和表數(shù)據(jù)文件導(dǎo)入到數(shù)據(jù)庫(kù),恢復(fù)數(shù)據(jù)。>>數(shù)據(jù)庫(kù)升級(jí)成功后導(dǎo)入變更的表定義和表數(shù)據(jù)。
>>共享內(nèi)存中存儲(chǔ)數(shù)據(jù)異常。
邏輯備份生成的表定義和表數(shù)據(jù)文件。4.1 以安裝用戶(hù)登錄主機(jī)停止數(shù)據(jù)庫(kù):
4.2 檢查gmserver是否停止:
系統(tǒng)未顯示任何信息,則表示gmserver進(jìn)程已經(jīng)停止,否則請(qǐng)等待10秒,再執(zhí)行命令檢查。 如果gmserver進(jìn)程仍然在運(yùn)行,應(yīng)停止業(yè)務(wù)進(jìn)程訪問(wèn)數(shù)據(jù)庫(kù),并停止gmserver進(jìn)程。如果需要強(qiáng)制停止gmserver進(jìn)程,可以執(zhí)行如下命令。4.3 備份Data目錄和Redo目錄:
Data目錄路徑和Redo目錄路徑在配置文件“${GMDB_HOME}/config/server.ini”中配置。如果“DATA_PATH”和“REDO_PATH”配置項(xiàng)值為空,則“DATA_PATH”和“REDO_PATH”默認(rèn)值為“${GMDB_HOME}/data”和“${GMDB_HOME}/redo”。4.4 刪除共享內(nèi)存:
系統(tǒng)顯示類(lèi)似如下信息,表明共享內(nèi)存已經(jīng)刪除。
Successfully delete shared memory.
4.5 啟動(dòng)數(shù)據(jù)庫(kù):
4.6 檢查gmserver進(jìn)程是否啟動(dòng)正常。
gmsql /as dba "exit;" | grep "Successfully CONNECT to DB"
系統(tǒng)顯示類(lèi)似如下信息,則表示啟動(dòng)成功,否則請(qǐng)等待10秒再執(zhí)行命令檢查。Successfully CONNECT to DB.
4.7 恢復(fù)數(shù)據(jù)庫(kù):
gmdcp -c /as dba -i -p txt_backup_dir_20150130
txt_backup_dir_20150130為邏輯備份文件所在路徑。
系統(tǒng)顯示類(lèi)似如下信息,表明數(shù)據(jù)庫(kù)恢復(fù)成功。Start to import definition ...
Import definition of entire DB successfully.
Import definition successfully.
Start to import data...
Import data successfully.
All job finished, total time 0.124 seconds.
4.8 檢查數(shù)據(jù)庫(kù)準(zhǔn)確性
一、管理用戶(hù)
1.1 啟動(dòng)gmsql
<127 fastore11 [gmdb1] /home/gmdb1>gmsql
gmsql V200R005C52SPC230 - Production on Apr 10 2020
SQL>
1.2 使用sys用戶(hù)鏈接數(shù)據(jù)庫(kù)
SQL>connect sys/Admin123 ipc;
Connected through DB ...
Successfully CONNECT to DB.(IPC)
1.3 創(chuàng)建用戶(hù)賬號(hào):
如果你想創(chuàng)建只有查詢(xún)權(quán)限的帳戶(hù)user_read,并預(yù)設(shè)其密碼為User_read1(密碼要符合規(guī)則,否則會(huì)執(zhí)行失敗,詳細(xì)請(qǐng)參見(jiàn)密碼規(guī)則),可在gmsql中輸入CREATE USER user_read IDENTIFIED BY User_read1;SQL>CREATE USER user_read IDENTIFIED BY User_read1;
SQL Executed Successfully
2. 修改密碼
1.1 sys密碼管理:
登錄sys用戶(hù):在gmsql中輸入connect sys/password ipc 修改sys密碼:如果新密碼為Newpwd123,則在gmsql中輸入password sysSQL>password sys
Old password:********
New password:********
Retype new password:********
Password changed successfully.
測(cè)試密碼連接:CONNECT sys/Newpwd123 ipc; 登錄sys用戶(hù):在gmsql中輸入connect sys/password ipc 修改用戶(hù)密碼:如果你想將用戶(hù)user_read的密碼改為User_read2,則在gmsql中輸入password sys 測(cè)試密碼連接:CONNECT user_read/User_read2 ipc;3. 鎖定賬戶(hù)
登錄sys用戶(hù):在gmsql中輸入connect sys/password ipc; 鎖定用戶(hù):ALTER USER user_read ACCOUNT LOCK;4. 解鎖賬戶(hù)
登錄sys用戶(hù):在gmsql中輸入connect sys/password ipc; 解鎖用戶(hù):ALTER USER user_read ACCOUNT UNLOCK;5. 刪除賬戶(hù)
登錄sys用戶(hù):在gmsql中輸入connect sys/password ipc; 刪除用戶(hù):DROP USER user_read;6. 審計(jì)賬戶(hù)
登錄sys用戶(hù):在gmsql中輸入connect sys/password ipc; 審計(jì)賬戶(hù):假如你要對(duì)用戶(hù)帳戶(hù)的DML操作進(jìn)行審計(jì),可在gmsql中輸入ALTER USER user_read SET AUDIT DML ON;,然后執(zhí)行。二、管理權(quán)限
1. 創(chuàng)建角色
- FaStore數(shù)據(jù)庫(kù)默認(rèn)的管理員帳戶(hù)為sys,僅sys用戶(hù)具有創(chuàng)建角色的權(quán)限。
- 角色名不允許為系統(tǒng)關(guān)鍵字,參見(jiàn)語(yǔ)法約定。
- 角色名稱(chēng)最長(zhǎng)為30個(gè)字符,可以包含大小寫(xiě)字母、數(shù)字及下劃線,首字符必須為字母。
- 新創(chuàng)建角色默認(rèn)無(wú)任何權(quán)限。
1.2 登錄sys用戶(hù):在gmsql中輸入connect sys/password ipc;1.3 創(chuàng)建角色:CREATE ROLE rolename;1.4 查看角色:SELECT * FROM sys.SYSROLES;2. 授予系統(tǒng)權(quán)限給用戶(hù)或自定義角色
- FaStore數(shù)據(jù)庫(kù)默認(rèn)的管理員帳戶(hù)為sys,僅sys用戶(hù)具有授予系統(tǒng)權(quán)限的權(quán)限。
- 系統(tǒng)權(quán)限和角色可同時(shí)授予用戶(hù)。
- 即使有寫(xiě)權(quán)限也不能對(duì)系統(tǒng)表進(jìn)行寫(xiě)操作。
2.2 登錄sys用戶(hù):在gmsql中輸入connect sys/password ipc;2.3 授予系統(tǒng)權(quán)限給用戶(hù):GRANT sys_prives1,sys_privs2, ... TO username1,username2, ...;2.4 授予系統(tǒng)權(quán)限給自定義角色:GRANT sys_prives1,sys_privs2, ... TO rolename1,rolename2, ...;2.5 查詢(xún)角色“roletest”和用戶(hù)“usertest”擁有的系統(tǒng)權(quán)限表信息:SELECT * FROM SYSDBPRIVS WHERE GRANTEE = ‘ROLETEST’;SELECT * FROM SYSDBPRIVS WHERE GRANTEE = ‘usertest’;
注:授予多個(gè)系統(tǒng)權(quán)限時(shí)采用逗號(hào)分隔并且不能重復(fù)。授予多個(gè)用戶(hù)和自定義角色時(shí)采用逗號(hào)分隔并且不能重復(fù)。用戶(hù)名和自定義角色名可交叉。3. 授予對(duì)象權(quán)限給用戶(hù)或自定義角色
- 授予對(duì)象權(quán)限需要有GRANT ANY OBJECT PRIVILEGE權(quán)限。
- 即使有寫(xiě)權(quán)限也不能對(duì)系統(tǒng)表進(jìn)行寫(xiě)操作。
- 不能同時(shí)授予對(duì)象權(quán)限和系統(tǒng)權(quán)限。
- 不支持授予所有schema對(duì)象的語(yǔ)法,即GRANT select on userA.* to userB。
3.2 登錄sys用戶(hù):在gmsql中輸入connect sys/password ipc;3.3 授予表或視圖的對(duì)象權(quán)限:GRANT obj_prives1,obj_privs2, ... ON obj_name TO username1,username2,rolename1,rolename2, ...;3.4 授予其他對(duì)象權(quán)限:GRANT obj_prives1,obj_privs2, ... ON obj_keyword obj_name TO username1,username2,rolename1,rolename2, ...;3.5 查詢(xún)對(duì)象權(quán)限表“SYSOBJPRIVS”:SELECT * FROM SYSOBJPRIVS; 注:obj_name指對(duì)象名稱(chēng),obj_keyword指對(duì)象關(guān)鍵詞。授予多個(gè)對(duì)象權(quán)限時(shí)采用逗號(hào)分隔并且不能重復(fù)。授予多個(gè)用戶(hù)和自定義角色時(shí)采用逗號(hào)分隔并且不能重復(fù)。用戶(hù)名和自定義角色名可交叉。4. 授予角色給用戶(hù)
- FaStore數(shù)據(jù)庫(kù)默認(rèn)的管理員帳戶(hù)為sys,僅sys用戶(hù)具有授予角色的權(quán)限。
- 角色和系統(tǒng)權(quán)限可同時(shí)授予給用戶(hù)。
4.2 登錄sys用戶(hù):在gmsql中輸入connect sys/password ipc;4.3 授予角色給用戶(hù):Grant rolename1,rolename2, ... to username1,username2, ...; 注:授予多個(gè)角色時(shí)采用逗號(hào)分隔并且不能重復(fù)。授予多個(gè)用戶(hù)時(shí)采用逗號(hào)分隔并且不能重復(fù)。4.4 查詢(xún)用戶(hù)角色表信息:SELECT * FROM SYSUSERROLES;5. 撤銷(xiāo)用戶(hù)和自定義角色的系統(tǒng)權(quán)限
- FaStore數(shù)據(jù)庫(kù)默認(rèn)的管理員帳戶(hù)為sys,僅sys用戶(hù)具有撤銷(xiāo)系統(tǒng)權(quán)限的權(quán)限。
- 撤銷(xiāo)用戶(hù)和角色的權(quán)限后,該用戶(hù)和角色用戶(hù)新建句柄將不再具有已經(jīng)撤銷(xiāo)的系統(tǒng)權(quán)限,對(duì)當(dāng)前句柄無(wú)影響。
- 撤銷(xiāo)的系統(tǒng)權(quán)限必須為用戶(hù)或自定義角色所擁有,否則會(huì)撤銷(xiāo)失敗。
- 系統(tǒng)權(quán)限和角色可以同時(shí)撤銷(xiāo)。
5.2 登錄sys用戶(hù):在gmsql中輸入connect sys/password ipc;5.3 撤銷(xiāo)用戶(hù)的系統(tǒng)權(quán)限:REVOKE sys_prives1,sys_privs2, ... from username1,username2, ...;5.4 撤銷(xiāo)自定義角色的系統(tǒng)權(quán)限:REVOKE sys_prives1,sys_privs2, ... from rolename1,rolename2, ...; 注:撤銷(xiāo)多個(gè)系統(tǒng)權(quán)限時(shí)采用逗號(hào)分隔并且不能重復(fù)。撤銷(xiāo)多個(gè)用戶(hù)和自定義角色時(shí)采用逗號(hào)分隔并且不能重復(fù)。用戶(hù)名和自定義角色名可交叉。6. 撤銷(xiāo)用戶(hù)和自定義角色的對(duì)象權(quán)限
- 撤銷(xiāo)對(duì)象權(quán)限需要有GRANT ANY OBJECT PRIVILEGE權(quán)限。
- 即使有寫(xiě)權(quán)限也不能對(duì)系統(tǒng)表進(jìn)行寫(xiě)操作。
- 一次只能撤銷(xiāo)一個(gè)對(duì)象的權(quán)限。
- 不能同時(shí)撤銷(xiāo)對(duì)象權(quán)限和系統(tǒng)權(quán)限。
- 撤銷(xiāo)不存在的權(quán)限或者不屬于用戶(hù)或角色的權(quán)限會(huì)失敗。
- 撤銷(xiāo)用戶(hù)和自定義角色的對(duì)象權(quán)限后,該用戶(hù)和角色用戶(hù)新建句柄將不再具有已經(jīng)撤銷(xiāo)的對(duì)象權(quán)限,對(duì)當(dāng)前句柄無(wú)影響。
6.2 登錄sys用戶(hù):在gmsql中輸入connect sys/password ipc;6.3 撤銷(xiāo)表或視圖的對(duì)象權(quán)限:REVOKE obj_prives1,obj_privs2, ... ON obj_name FROM username1,username2,rolename1,rolename2, ...;6.4 撤銷(xiāo)其他對(duì)象權(quán)限:REVOKE obj_prives1,obj_privs2, ... ON obj_keyword obj_name FROM username1,username2,rolename1,rolename2, ...; 注:obj_name指對(duì)象名稱(chēng),obj_keyword指對(duì)象關(guān)鍵詞。撤銷(xiāo)多個(gè)對(duì)象權(quán)限時(shí)采用逗號(hào)分隔并且不能重復(fù)。撤銷(xiāo)多個(gè)用戶(hù)和自定義角色時(shí)采用逗號(hào)分隔并且不能重復(fù)。用戶(hù)名和自定義角色名可交叉。7. 撤銷(xiāo)用戶(hù)角色
登錄sys用戶(hù):在gmsql中輸入connect sys/password ipc;撤銷(xiāo)用戶(hù)角色:Revoke rolename1,rolename2, ... from username1,username2, ...;8. 刪除角色
登錄sys用戶(hù):在gmsql中輸入connect sys/password ipc; 注:刪除角色時(shí),系統(tǒng)會(huì)提示將會(huì)撤銷(xiāo)該角色下的所有權(quán)限并且不能回滾,需要進(jìn)行確認(rèn)。三、管理對(duì)象
1. 管理表空間
1.1 概述:
表空間(tablespace)是數(shù)據(jù)庫(kù)的邏輯劃分。數(shù)據(jù)庫(kù)將數(shù)據(jù)存放在數(shù)據(jù)文件中。在其內(nèi)部,數(shù)據(jù)庫(kù)將不同的數(shù)據(jù)分開(kāi)存儲(chǔ),這些邏輯劃分稱(chēng)為表空間。從物理角度來(lái)看,表空間將數(shù)據(jù)存儲(chǔ)在一個(gè)或多個(gè)數(shù)據(jù)文件中。一個(gè)數(shù)據(jù)庫(kù)通常包含了若干表空間,一個(gè)表空間通常對(duì)應(yīng)若干個(gè)數(shù)據(jù)文件。 數(shù)據(jù)文件位于磁盤(pán)中,用于存放邏輯結(jié)構(gòu)、管理信息、業(yè)務(wù)數(shù)據(jù)。數(shù)據(jù)文件在創(chuàng)建、修改表空間時(shí)由數(shù)據(jù)庫(kù)自動(dòng)生成。1.1.3 數(shù)據(jù)文件有下列特征:- 一個(gè)數(shù)據(jù)文件對(duì)應(yīng)一個(gè)表空間。
- 數(shù)據(jù)文件創(chuàng)建之后,既不能改變它的大小,也不能刪除它。
- 一個(gè)表空間由一個(gè)或多個(gè)數(shù)據(jù)文件組成。
- 可以向已有的表空間里增加新的數(shù)據(jù)文件。
- 數(shù)據(jù)文件的大小范圍是:56KB~4032MB。
- 數(shù)據(jù)文件的命名規(guī)則:可包含字母、數(shù)字、下劃線。不能以點(diǎn)號(hào)開(kāi)頭。
PERM:系統(tǒng)默認(rèn)會(huì)創(chuàng)建名為USER和SYSTEM的PERM類(lèi)型表空間,用于存放用戶(hù)數(shù)據(jù)庫(kù)對(duì)象的持久化信息(比如表和索引)和系統(tǒng)表的持久化信息。用戶(hù)如果要在創(chuàng)建對(duì)象時(shí)未指定表空間,則默認(rèn)存儲(chǔ)在USER表空間。 UNDO:存儲(chǔ)用戶(hù)表的UNDO持久化信息,表空間名為UNDO。 TEMP_UNDO:存儲(chǔ)臨時(shí)表的UNDO信息,表空間名為T(mén)EMP_UNDO。 TEMP:存儲(chǔ)臨時(shí)表信息,表空間名為T(mén)EMP。 HASH:存放索引的哈希桶信息,表空間名為HASH。 TEMP_HASH:存儲(chǔ)臨時(shí)表索引的哈希桶信息,表空間名為HASH_TEMP。 REP:存儲(chǔ)RT表(Replication Table)信息,表空間名為REP。 REP_UNDO:存儲(chǔ)RT表的UNDO信息,表空間名為REP_UNDO。1.2 創(chuàng)建表空間
- FaStore數(shù)據(jù)庫(kù)服務(wù)已正常運(yùn)行。
- 已啟動(dòng)gmsql工具,并通過(guò)有CREATE SESSION和CREATE TABLESPACE權(quán)限的帳戶(hù)連接到用戶(hù)庫(kù)。
- 當(dāng)前的操作系統(tǒng)用戶(hù)要擁有相應(yīng)目錄的讀寫(xiě)權(quán)限,該目錄用于存放數(shù)據(jù)文件。
1.2.2 登錄一個(gè)用戶(hù)gmsql;connect user_read/User_read1 192.168.56.111:8500;1.2.3 創(chuàng)建表空間:CREATE TABLESPACE MYTBS ON (mytbs.dat SIZE 64k);1.2.4 查看表空間:SELECT * FROM V$TABLESPACE WHERE NAME =MYTBS;1.3 擴(kuò)容表空間
- FaStore數(shù)據(jù)庫(kù)服務(wù)已正常運(yùn)行。
- 已啟動(dòng)gmsql工具,并通過(guò)有CREATE SESSION和CREATE TABLESPACE權(quán)限的帳戶(hù)連接到用戶(hù)庫(kù)。
- 當(dāng)前的操作系統(tǒng)用戶(hù)要擁有相應(yīng)目錄的讀寫(xiě)權(quán)限,該目錄用于存放數(shù)據(jù)文件。
SELECT NAME,(SPACE_SIZE-SPACE_FREE_SIZE)/SPACE_SIZE SPACE_USED FROM v$tablespace;1.3.3 給表空間增加數(shù)據(jù)文件:ALTER TABLESPACE tablespace_name ADD DATAFILE datafile_name SIZE size_num K|M|G;1.4 縮減表空間
1.4.1 前提條件:
- 在創(chuàng)建數(shù)據(jù)庫(kù)之后,不支持在線縮小表空間,用戶(hù)可以通過(guò)重建數(shù)據(jù)庫(kù)對(duì)表空間整改,實(shí)現(xiàn)縮小表空間。
- 雙機(jī)監(jiān)控和業(yè)務(wù)都已經(jīng)正常停止。
- 創(chuàng)建數(shù)據(jù)備份目錄。
% mkdir ${GMDB_HOME}/gmdb_data_bak_4_tbs
% gmsql /as dba "checkpoint;exit;"
% gmbar -b ${GMDB_HOME}/gmdb_data_bak_4_tbs -c
- 創(chuàng)建數(shù)據(jù)備份目錄。
% mkdir ${GMDB_HOME}/gmdb_data_bak_4_tbs_lg
- 導(dǎo)出數(shù)據(jù)庫(kù):由于備份數(shù)據(jù)量大,備份文件所在磁盤(pán)文件空間大小大于備份數(shù)據(jù)量大小。導(dǎo)出時(shí)間因不同環(huán)境(包括現(xiàn)場(chǎng)數(shù)據(jù)量、服務(wù)器性能等因素)耗時(shí)不同。
gmdcp -c /as dba -e -n 5 -p ${GMDB_HOME}/gmdb_data_bak_4_tbs_lg
- 刪除“DATA_PATH”和“REDO_PATH”配置項(xiàng)對(duì)應(yīng)目錄下的所有文件
查看server.ini文件中“DATA_PATH”和“REDO_PATH”配置項(xiàng)的值。如果“DATA_PATH”和“REDO_PATH”配置項(xiàng)值為空,則“DATA_PATH”和“REDO_PATH”默認(rèn)值為“${GMDB_HOME}/data”和“${GMDB_HOME}/redo”。- 啟動(dòng)FaStore,檢查gmserver進(jìn)程是否啟動(dòng)正常
startdb.sh;gmsql /as dba "exit;" | grep "Successfully CONNECT to DB";
gmsql /as dba "drop table FASTORE_JOBS;exit;"
cd ${GMDB_HOME}/gmdb_data_bak_4_tbs_lg
cp gmdb.sql gmdb.sql.bak
使用VI編輯器編輯“gmdb.sql”,根據(jù)整改目標(biāo)對(duì)CREATE TABLESPACE、CREATE TEMPORARY TABLESPACE和ALTER TABLESPACE語(yǔ)句的表空間文件名以及表空間大小進(jìn)行修改。修改完成后,保存退出VI編輯器gmdcp -c /as dba -i -n 5 -p ${GMDB_HOME}/gmdb_data_bak_4_tbs_lg
2. 管理表
如果想要手動(dòng)清理該表的碎片,可在gmsql中輸入VACUUM TABLE TBL; 如果要手動(dòng)清理所有表的碎片,可在gmsql中輸入VACUUM TABLE ALL;本 文 原 創(chuàng) 來(lái) 源:IT那活兒微信公眾號(hào)(上海新炬王翦團(tuán)隊(duì))
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/129716.html