• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    oracle导入线上数据的详细指南

    发布者: 浪子 | 发布时间: 2025-6-18 09:28| 查看数: 31| 评论数: 0|帖子模式


    多租户架构允许oracle数据库成为一个多租户的容器数据库,也就是CDB,container database,与之相对应的,则是插入到这个容器里面的可插拔式数据库,pluggable database
    一个CDB可以包含0,1或者多个用户创建的PDB。
    一个PDB则是一个可插拔式的集合,它包含了用户,用户的对象,以及非用户的对象,它对外看起来就相当于一个non-CDB,也就是普通数据库。在12C之前的所有数据库都是non-CDB。
    CDB里面的容器
    一个容器既是一个PDB,也是一个root。

    1、准备好数据库, 使用docker方式安装oracle数据库
    1. docker run -d --name oracle  --privileged  -v /d/docker_env/oracle/db_data:/opt/oracle/oradata  -p 5050:5050 -p 5500:5500 -p 1521:1521 scalified/oracle-database:12.1.0.2-ee
    复制代码

    注意第一次拉取镜像有点慢。

    2、配置数据库

    创建本地数据库用户名和密码,以及表空间,进入容器中
    (2.1) docker exec -it bc261a5326c6  /bin/sh
    (2.2) 修改tnsnames.ora文件, echo $ORACLE_HOME,找到文件位置
    tnsnames.ora, $ORACLE_HOME\network\admin 下,


    打开tnsnames.ora 查看默认数据库,配置环境变量,不然下面2.3代码无法生效
    1. export ORACLE_SID=ORCLCDB
    复制代码
    (2.3)输入以下代码
    1. sqlplus sys/change_on_install as sysdba
    复制代码
    (2.4)创建新的pdb AEOLUSOA, 注意路径是根据命令( select name from v$datafile;) 得出来,并非随意捏造。
    1. CREATE PLUGGABLE DATABASE AEOLUSOA  ADMIN USER DB_OA_FZ_FJJSZX IDENTIFIED BY ****** STORAGE (MAXSIZE 100G) DEFAULT TABLESPACE TBS_DB_OA_FZ_FJJSZX  DATAFILE '/opt/oracle/oradata/ORCLCDB/AEOLUSOA/AEOLUSOA01.dbf' SIZE 150M AUTOEXTEND ON PATH_PREFIX = '/opt/oracle/oradata/ORCLCDB/AEOLUSOA/' FILE_NAME_CONVERT = ('/opt/oracle/oradata/ORCLCDB/pdbseed/', '/opt/oracle/oradata/ORCLCDB/AEOLUSOA/');
    复制代码

    (2.5)输入以下代码,启动PDB数据库:
    1. alter pluggable database AEOLUSOA open;  
    复制代码
    (2.6)防止每次docker重新启动,需要多次配置
    1. alter pluggable database AEOLUSOA save state;
    复制代码
    (2.7)删除不要的pdb(可选)
    1. drop pluggable database AEOLUSOA;
    复制代码
    (2.8)启动pdb,以下步骤一定要在自己pdb操作
    1. alter session set container=AEOLUSOA ;
    复制代码
    (2.9)授权用户
    1. grant imp_full_database to DB_OA_FZ_FJJSZX;

    2. grant SYSDBA to DB_OA_FZ_FJJSZX;
    3. grant all PRIVILEGES TO DB_OA_FZ_FJJSZX;
    4. grant imp_full_database to DB_OA_FZ_FJJSZX;
    复制代码
    (2.10)创建表空间(可选),一定要跟线上一致不然,这步不做的话,默认是system的表空间,导入数据需要用vi,修改dmp文件
    1. create tablespace TBS_DB_OA_FZ_FJJSZX_AUTOFORM logging datafile '/opt/oracle/oradata/ORCLCDB/AEOLUSOA/TBS_DB_OA_FZ_FJJSZX_AUTOFORM
    2. .dbf' size 10240m autoextend on next 100m MAXSIZE unlimited   extent management local;

    3. alter user DB_OA_FZ_FJJSZX_AUTOFORM quota unlimited on TBS_DB_OA_FZ_FJJSZX_AUTOFORM;
    复制代码
    or
    1. vi *.dmp
    2. :1,$s/TBS_DB_OA_FZ_FJJSZX/SYSTEM/g
    复制代码
    (2.11)配置tnsname.ora文件,将下面字复制到tnsname.ora文件中
    1. AEOLUSOA =
    2.   (DESCRIPTION =
    3.     (ADDRESS_LIST =
    4.       (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    5.     )
    6.     (CONNECT_DATA =
    7.       (SERVICE_NAME = AEOLUSOA)
    8.     )
    9.   )
    复制代码

    (2.12)数据库迁移导入
    线上备份
    (1)、执行服务器的备份脚本,如
    1. set mySid=JSZXOA

    2. set myPath=D:/data/%date%

    3. set user1=DB_OA_FZ_FJJSZX
    4. set pass1=*******

    5. set user2=DB_OA_FZ_FJJSZX_AUTOFORM
    6. set pass2=********

    7. md "%myPath%"


    8. exp '%user1%/%pass1%@%mySid%' file='%myPath%/%user1%.dmp' log='%myPath%/%user1%.log'
    9. exp '%user2%/%pass2%@%mySid%' file='%myPath%/%user2%.dmp' log='%myPath%/%user2%.log'

    复制代码
    (2)、数据在D:\data\{导出日期}\中。
    (3)、复制到本地
    (4)、dmp文件复制到启动的容器中,注意e6a787fccdf2,要使用docker ps命令查看当前docker启动的id
    1. docker cp d:\data\2024-10-17\DB_OA_FZ_FJJSZX.dmp  e6a787fccdf2:/opt/oracle
    复制代码
    (5)数据导入
    1. imp DB_OA_FZ_FJJSZX/DB_OA_FZ_FJJSZX@AEOLUSOA fromuser=DB_OA_FZ_FJJSZX  touser=DB_OA_FZ_FJJSZX file=/opt/oracle/DB_OA_FZ_FJJSZX.dmp log=/opt/oracle/imp.log ignore=y
    复制代码
    以上就是oracle导入线上数据的详细指南的详细内容,更多关于oracle导入线上数据的资料请关注脚本之家其它相关文章!

    来源:https://www.jb51.net/database/33111861c.htm
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    ×

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表