• MySQL与Oracle数据库通过系统命令导出导入


    MySQL导出

    mysqldump -uroot -ppassword 库名 表名 --where="s_dtend<'2023-05-01 00:00:00' and s_dtend>='2023-01-01 00:00:00' and (i_mbr!=10000 OR (i_mbr = 10000 AND I_ACTV IN (SELECT I_ACTV FROM t_mk_activity WHERE S_DTEND < '2023-05-01 00:00:00')))" --skip-lock-tables --single-transaction --no-create-info --complete-insert --skip-extended-insert > E:\0816数据库导出\t_mk_coupon_chklog.sql
    
    • 1

    上面这个导出语句需要在MySQL安装所在机器,进入cmd命令行执行,下面分别是对每个指令的说明

    -uroot -ppassword: 这是连接到MySQL服务器的用户名和密码。-uroot 表示用户名为 "root"-ppassword 表示密码是 "password"。这是通过命令行参数传递用户名和密码。
    ydd_market t_mk_coupon_chklog: 这是数据库名和表名。指示 mysqldump 要从哪个数据库的哪个表导出数据。
    
    • 1
    • 2
    --where="s_dtend<'2023-05-01 00:00:00' and i_mbr!=10000": 这是 WHERE 子句,用于筛选要导出的数据行。只有满足条件的行会被导出。在此命令中,仅导出 s_dtend 小于 '2023-05-01 00:00:00' 且 i_mbr 不等于 10000 的行。
    
    • 1
    --skip-lock-tables: 这个选项告诉 mysqldump 在导出数据时跳过锁定表,以避免对正在使用的表进行锁定。这对于在导出过程中不中断其他数据库操作很有用。
    
    • 1
    --single-transaction: 这个选项告诉 mysqldump 在事务中执行导出操作。这样可以确保数据的一致性,即使在导出期间其他操作也可以继续进行。
    
    • 1
    --no-create-info: 这个选项指示 mysqldump 不要生成 CREATE TABLE 语句,只导出数据。这可以用于避免在导入数据时重新创建表结构。
    
    • 1
    --complete-insert: 这个选项指示 mysqldump 在每一行数据上生成完整的 INSERT INTO 语句,包括列名。这样的话,每行数据都是一个完整的 INSERT 语句,而不是多行数据合并在一起。
    
    • 1
    --skip-extended-insert: 这个选项告诉 mysqldump 不要生成扩展插入语句,而是生成一个 INSERT 语句插入一行数据。这样可以更容易地查看每个插入的数据。
    
    • 1
    > E:\0816数据库导出\t_mk_coupon_chklog.sql: 这个部分将导出的数据重定向到指定的文件路径。> 符号用于将输出重定向到文件中,E:\0816数据库导出\t_mk_coupon_chklog.sql 是输出文件的路径。
    
    • 1

    Oracle导出导入

    一、指定表导出文件所在目录

    CREATE DIRECTORY dpump_dir AS 'E:/oracle导出';
    (如果需要删除这个,DROP DIRECTORY dpump_dir;
    • 1
    • 2

    二、执行导出命令
    (需要在Oracle安装所在的机器上面操作,如果在cmd窗口执行,则不需要加host;如果是plsql里面执行,需要加上host,plsql必须和Oracle安装在同一台机器上面)

    host expdp username/password@ORCL SCHEMAS=username DIRECTORY=dpump_dir DUMPFILE=smsdatacenter.dmp;
    	host:调用系统命令
    	@ORCL:目标数据库的名称,可以通过SELECT name FROM v$database;查询
    	username:用户名
    	dpump_dir:第一步创建的别名
    	smsdatacenter.dmp:导出的文件名
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    三、创建表空间

    CREATE TABLESPACE 表空间名
        DATAFILE 'E:\oradata\ORCL\表空间名.DBF'
        SIZE 1024M
        AUTOEXTEND ON NEXT 50M;
    (删除表空间:DROP TABLESPACE 表空间名 INCLUDING CONTENTS AND DATAFILES;
    • 1
    • 2
    • 3
    • 4
    • 5

    四、创建用户,授权表空间

    CREATE USER username IDENTIFIED BY password DEFAULT TABLESPACE 表空间名;
    	–授予用户连接数据库的权限
    	grant create session to username ;
    	–授予用户创建表的权限
    	grant create table to username ;
    	–授予用户使用表空间的权限
    	grant unlimited tablespace to username ;
    	-授予用户连接数据库的权限
    	GRANT CONNECT TO username ;  
    	-授予用户 RESOURCE 角色
    	GRANT RESOURCE TO username ;  
    	-授予用户 DBA 角色
    	GRANT dba TO username ;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    五、指定表导入文件所在目录(如果导入导出目标在同一个数据库里,则不需要重新指定位置,可以直接使用第一步的)

    CREATE DIRECTORY dpump_dir AS 'E:/oracle导出';
    赋予读写权限
    grant read,write on directory dump_dir to username ;
    
    • 1
    • 2
    • 3

    六、执行导入命令
    (需要在Oracle安装所在的机器上面操作,如果在cmd窗口执行,则不需要加host;如果是plsql里面执行,需要加上host,plsql必须和Oracle安装在同一台机器上面)

    host impdp username/password@ORCL DIRECTORY=DPUMP_DIR DUMPFILE=表空间名.DMP LOGFILE=log_file_name.log;
    
    • 1
  • 相关阅读:
    SpringMVC之JSR303和拦截器
    linux每处理器内存分配
    Soundness
    灯塔信息收集系统-Kali Linux下搭建安装灯塔系统(信息收集自动化)
    python-jieba库
    Azure 机器学习 - 使用 Visual Studio Code训练图像分类 TensorFlow 模型
    AVL树节点插入方式解析(单旋转和双旋转)
    君正X2000/X1600主控CPU方案有哪些场景?行业迈向人机交互智能时代来啦!
    Spring Security 注册过滤器关键点与最佳实践
    剑指 Offer II 054. 所有大于等于节点的值之和
  • 原文地址:https://blog.csdn.net/weixin_44758923/article/details/132598151