Linux下Oracle数据库自动备份脚本
1.用PL/SQL登录数据库
2.设置空表可导出
select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;
--然后执行查询出来的语句
3.查看数据库的字符集
查看database中的NLS_CHARACTERSET的值
a、select * from nls_database_parameters t where t.parameter='NLS_CHARACTERSET';
b、select * from v$nls_parameters where parameter='NLS_CHARACTERSET';
PARAMETER VALUE
----------------- ----------
NLS_CHARACTERSET ZHS16GBK
4.登录linuxOracle服务器
5.创建investDBbak目录(目录随意创建,在脚本中修改即可)
mkdirinvestDBbak
6.在investDBbak下创建DBBak目录、Shell目录
mkdirDBBak
mkdirshell
7.在shell目录下创建invest_test_dbbak.sh文件
vi invest_test_dbbak.sh
8.复制内容
#!/bin/sh
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export DATA_DIR=/home/oracle/investDatabak/dbbak/data
export LOGS_DIR=/home/oracle/investDatabak/dbbak/log
export DELTIME=`date -d "15 days ago" +%Y%m%d`
export BAKUPTIME=`date +%Y%m%d%H%M%S`
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
mkdir -p $DATA_DIR
mkdir -p $LOGS_DIR
echo "Starting bakup..."
echo "Bakup file path $DATA_DIR/$BAKUPTIME.dmp"