MySQL
备份
mysqldump ‐uroot ‐p123456 test >/root/data/test.sql
恢复
恢复数据库,需要手动的先创建数据库
create database test1
mysql ‐uroot ‐p123456 test1</root/data/test.sql
Oracle
exp/imp
(1)表方式,将指定表的数据导出/导入。
导出:
导出一张或几张表:
代码
$ exp user/pwd file=/dir/xxx.dmp log=xxx.log tables=table1,table2
$ exp user/pwd file=/dir/xxx.dmp log=xxx.log tables=table1,table2
如果是分区表
代码
$ exp user/pwd file=/dir/xxx.dmp log=xxx.log tables=table1:tablespaces1,table2:tablespaces2
$ exp user/pwd file=/dir/xxx.dmp log=xxx.log tables=table1:tablespaces1,table2:tablespaces2
导出某张表的部分数据
代码
$ exp user/pwd file=/dir/xxx.dmp log=xxx.log tables=table1 query=\”where col1=\’…\’
and col2 <…\”
$ exp user/pwd file=/dir/xxx.dmp log=xxx.log tables=table1 query=\”where col1=\’…\’
and col2 <…\”
导入:
导入一张或几张表
代码
$ imp user/pwd file=/dir/xxx.dmp log=xxx.log tables=table1,table2 fromuser=dbuser touser=dbuser2 commit=y ignore=y
$ imp user/pwd file=/dir/xxx.dmp log=xxx.log tables=table1,table2 fromuser=dbuser touser=dbuser2 commit=y ignore=y
如果是分区表
代码
$ imp user/pwd file=/dir/xxx.dmp log=xxx.log tables=table1:tablespaces1,table2:tablespaces2 fromuser=dbuser touser=dbuser2 commit=y ignore=y
$ imp user/pwd file=/dir/xxx.dmp log=xxx.log tables=table1:tablespaces1,table2:tablespaces2 fromuser=dbuser touser=dbuser2 commit=y ignore=y
(2)用户方式,将指定用户的所有对象及数据导出/导入。
导出:
代码
$ exp user/pwd file=/dir/xxx.dmp log=xxx.log owner=(xx, yy)
$ exp user/pwd file=/dir/xxx.dmp log=xxx.log owner=(xx, yy)
只导出数据对象,不导出数据 (rows=n )
$ exp user/pwd file=/dir/xxx.dmp log=xxx.log owner=user rows=n
导入:
代码
imp user/pwd file=/dir/xxx.dmp log=xxx.log fromuser=dbuser touser=dbuser2
commit=y ignore=y
imp user/pwd file=/dir/xxx.dmp log=xxx.log fromuser=dbuser touser=dbuser2
commit=y ignore=y
exp system/oracle@192.168.0.1:1521/orcl file=d:\scott.dmp owner=scott --导出指定用户
imp system/manager@mycon file=usr1.dmp fromuser=scott touser=scott --导入到指定用户
(3)全库方式,将数据库中的所有对象导出/导入导出:
代码
$ exp user/pwd file=/dir/xxx.dmp log=xxx.log full=ycommit=y ignore=y
$ exp user/pwd file=/dir/xxx.dmp log=xxx.log full=ycommit=y ignore=y
导入:
代码
$ imp user/pwd file=/dir/xxx.dmp log=xxx.log fromuser=dbuser touser=dbuser2
定时备份
1、编写sh脚本dbbak.sh
BACKUP_DIR=/home/oracle/backups
if [ ! -d $BACKUP_DIR ]; then
mkdir -p KaTeX parse error: Expected 'EOF', got '#' at position 52: …d Thu Fri Sat) #̲创建数组 TYPES=(in…{DAYS[KaTeX parse error: Expected 'EOF', got '}' at position 5: day]}̲ #取得数组的值 TYPE={TYPES[KaTeX parse error: Expected 'EOF', got '}' at position 5: day]}̲ DATE_NAME=`da…{DATE_NAME}-
D
A
Y
N
A
M
E
−
{DAY_NAME}-
DAYNAME−{TYPE}.dmp #2008-12-8-Mon-complete.dmp
exp xxx/xxx inctype=
T
Y
P
E
f
i
l
e
=
TYPE file=
TYPEfile={BACKUP_DIR}/${FILE_NAME} > /dev/null
gzip
B
A
C
K
U
P
D
I
R
/
{BACKUP_DIR}/
BACKUPDIR/{FILE_NAME}
find $BACKUP_DIR -mtime +7 -delete #删除七天前更改过的文件
2、修改文件权限
chmod 777 dbbak.sh
3、使用crontab命令指定定时任务 每天的23点59分执行脚本
crontab –e
59 23 * * * /home/oracle/dbbak/shell/dbbak.sh
859

被折叠的 条评论
为什么被折叠?



