主流数据库的备份

1.postgresql

postgresql 的备份主要采用pg_dump命令
常用指令:

-d, --dbname=DBNAME 对数据库 DBNAME备份
-h, --host=主机名 数据库服务器的主机名或套接字目录
-p, --port=端口号 数据库服务器的端口号
-U, --username=名字 以指定的数据库用户联接
-w, --no-password 永远不提示输入口令
-W, --password 强制口令提示 (自动)
--role=ROLENAME 在转储前运行SET ROLE
-t, --table=TABLE 只转储指定名称的表
-T, --exclude-table=TABLE 不转储指定名称的表

例如要导出:mymap数据
需要手动输入密码写法 pg_dump -h 127.0.0.1 -p 5432 -U postgres mymap > E:\mymap.bak
在这里插入图片描述在这里插入图片描述
不需要手动输入密码写法:pg_dump “host=127.0.0.1 hostaddr=127.0.0.1 port=5432 user=postgres password=123456 dbname=mymap” > “E:\mymap.bak”

导入:
psql -h 127.0.0.1 -p 5432 -U postgres mymap < E:\mymap.bak

bat 脚本 (全库备份,且过期备份文件不会删除,需要人工定期去删除过期文件)

@echo off
set dbpath=E:\backup
set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%"
IF NOT EXIST "%dbpath%\%Ymd%" md "%dbpath%\%Ymd%"
"E:\PostgreSQL\10\bin\pg_dump.exe" "host=127.0.0.1 hostaddr=127.0.0.1 port=5432 user=postgres password=123456 dbname=mymap" > "%dbpath%\%Ymd%\backup_%Ymd%_mymap.bak"

备份的同时删除两天前的文件(需要支持forfiles)

@echo off
set dbpath=E:\backup
set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%"
forfiles /p "%dbpath%" /s /m *.* /d -2 /c "cmd /c del @path"
IF NOT EXIST "%dbpath%\%Ymd%" md "%dbpath%\%Ymd%"
"E:\PostgreSQL\10\bin\pg_dump.exe" "host=127.0.0.1 hostaddr=127.0.0.1 port=5432 user=postgres password=qwerty123 dbname=jg" > "%dbpath%\%Ymd%\backup_%Ymd%_jg.bak"
"E:\PostgreSQL\10\bin\pg_dump.exe" "host=127.0.0.1 hostaddr=127.0.0.1 port=5432 user=postgres password=qwerty123 dbname=slj" > "%dbpath%\%Ymd%\backup_%Ymd%_slj.bak"

2.oracle

由于oracle 11g中当表无数据时,不分配segment,若是采用exp指令,就会出现少表的情况,所以采用expdp的方式进行导出

在使用expdp时,需要先创建一个导出目录
查询oracle现有目录:

select * from dba_directories;

创建导出目录:

1.登陆数据库
sqlplus system/123456@orcl
2.创建备份目录(此处创建的目录,并不会在磁盘上创建,需要你自己在磁盘上手动创建)
create directory dpdata1 as 'D:\temp\dmp';  (dpdata1是目录名创建路径对应的是as后面的)
2.1查看是否创建成功
select * from dba_directories;
3.赋予权限
grant read,write on directory dpdata1 to user; (此处的user对应的是你的数据库中的用户名)

导出:

expdp user/password@orcl directory=dpdata1 dumpfile=aa.dmp logfile=aa.log schemas=user

对应导入:

impdp user/password directory=dpdata1 dumpfile=aa.dmp remap_schema=user1:user full=y;

windows下bat脚本备份(此备份为全库备份):

@echo off
expdp dbhzt/123456@orcl directory=LOG_FILE_DIR dumpfile=aa.dmp logfile=aa.log schemas=dbhzt

3.mysql 备份

mysql 的备份主要采用mysqldump指令
导出

mysqldump -hlocalhost -P3306 -uroot -p123456 dbname > "filepath/test.sql"

windows 下bat脚本

@echo off
set dbpath=E:\backup
set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%0%time:~1,1%%time:~3,2%%time:~6,2%"
"E:\mariadb-10.0.17-winx64\bin\mysqldump" -hlocalhost -P3306 -uroot -p123456 dbname > "%dbpath%\%Ymd%\backup_%Ymd%.sql"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值