expdb数据本地备份

需求(描述不正确可忽略):

数据库服务器:linux系统,物理小机,oracle11.2.4

本地服务器:windows 2018 虚拟机系统,oracle11.2.4

需要将远程服务器的数据备份到本地服务器某个目录下

前置条件

本地服务器已安装好数据库oracle11.2.4

本地服务器有足够的存储空间(根据备份数据库数据大小)

备份前最好梳理下数据库,删掉不用的表(临时创建的表,备份表或其他)

操作步骤

以下操作只在本地服务器操作

1、创建一个可用的表空间

create tablespace BACKUP
    datafile 'D:\APP\ADMINISTRATOR\ORADATA\OGDP2020\ogdp2020.ORA' 
    size 4G 
    AUTOEXTEND ON NEXT 1G
    maxsize unlimited;

 2、创建备份的用户

创建的用户最好同需要备份数据用户相同

create user backuser
    IDENTIFIED BY backpassword
    DEFAULT TABLESPACE BACKUP TEMPORARY TABLESPACE TEMP;

 3、用户授权

grant all privileges to backuser;
grant dba to backuser;

 4、在本地数据库用户backuser下创建dblink

该dblink中的数据库信息是数据库服务器的信息

create database link dblink1
  connect to dbusername identified by dbpassword
  using 
    '(DESCRIPTION =(ADDRESS_LIST =
                    (ADDRESS =(PROTOCOL = TCP)
                    (HOST = 192.168.0.1)(PORT = 1521)))
                    (CONNECT_DATA =(SERVICE_NAME = orcl)))';

 5、创建备份目录

--创建备份目录
CREATE DIRECTORY BAKDIR AS 'D:\dbback';
--查看当前数据库目录
select * from dba_directories;

 6、创建备份脚本

新建txt文件,输入以下内容后,将文件后缀名改为bat

在创建好脚本之后,先执行下脚本,若能正常连接到数据库,再开始创建windows定时任务

@echo off

rem 获取当前系统时间
set current_date=%date:~0,4%%date:~5,2%%date:~8,2%

rem 设置数据库连接地址
set address=10.127.128.46:1521/orcl

rem 设置用户名、密码
set username=orcl
set password=paawdar@21

rem 创建连接
set connect=%username%/%password%@%address%

rem 执行备份
expdp userid=%connect% directory=bakdir network_link=dblink1 dumpfile=%current_date%.dmp logfile=%current_date%.log schemas=backuser

rem 删除备份,只保留4天的
set SrcDir=D:\dbback
set DaysAgo=4
forfiles /p %SrcDir% /s /m *.* /d -%DaysAgo% /c "cmd /c del /f /q /a @path"
forfiles /p %SrcDir% /s /m "*" /d -%DaysAgo% /c "cmd /c rd /s /q @path"

echo 备份完成

7、创建windows定时任务

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值