1)設置deferred_segment_creation參數
下面設置不管是不是空表都分配segment空間。
su - oracle sqlplus / as sysdba SQL>show parameter deferred_segment_creation
注意:該參數值默認是TRUE,當改爲FALSE時,無論是空表還是非空表,都分配segment。
SQL>alter system set deferred_segment_creation=false;
注意:該值設置後對以前導入的空表不產生作用,仍不能導出,只能對後面新增的表產生作用。
重啓數據庫服務
2)配置ssh信任
配置ssh信任,備份腳本中的scp命令可以免密碼傳輸文件到從服務器(192.168.1.21)上
在主服務器上執行:
ssh-keygen -t rsa //一直回車即可 cd /root/.ssh/ scp id_rsa.pub [email protected]:/root/.ssh/
在從服務器上執行:
cd /root/.ssh/ mv id_rsa.pub authorized_keys
這樣在主服務器上可以scp免密碼拷貝文件到從服務器上
3)自動備份腳本
先在從服務器上創建備份文件存儲目錄
mkdir -p /home/backup/oracledata/ chmod 777 /home/backup/oracledata/
在主服務器上編寫腳本
vim /home/backup/oracledata/oraclebk.sh
# /usr/bin #路徑名,指定備份的路徑 FILEPATH=/home/backup/oracledata #根據指定日期格式,定義備份數據庫文件名 FILENAME=`date +"%Y%m%d_%H%M"` #切換至指定路徑,並創建文件夾 cd $FILEPATH mkdir $FILENAME chmod 775 $FILENAME #oracle變量設置 export USER=oracle; export ORACLE_SID=ecology; export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1; export PATH=$ORACLE_HOME/bin:$PATH; #導出數據庫 exp ecology/ecology file="$FILENAME/$FILENAME".dmp log="$FILENAME/$FILENAME".log owner=ecology #打包 tar -zcvf $FILENAME.tar.gz $FILENAME rm -rf $FILENAME scp $FILENAME.tar.gz [email protected]:$FILEPATH/ find ./ -mtime +15 -name \*.gz |xargs rm -f exit EOF
4)添加計劃任務
crontab -e 00 03 * * * sh /home/backup/oracledata/oraclebk.sh
5)重啓crond服務
systemctl restart crond.service