为什么80%的码农都做不了架构师?>>>   

整理项目资料时,看到了几年前数据库迁移时的备忘记录。迁移过程还是比较曲折的,现在想起来心里还有些抵触,这活简直太“脏”了,比较费神。

项目概要如下,迁移过程属于跨省数据迁移,之间通过运营商专线传输备份数据,数据量大概700G左右,说是专线,白天有时速度10几K,只能将任务放置到后台执行,这尼玛是毛专线。现在也没搞明白。

迁移过程使用oracle数据泵方式,只将表数据导出,传到对端后,再采用数据泵导入。schema信息单独导出,再进行导入。

现将oracle一些比较常用的命令记录如下:

1、查询字符集

# sqlplus / as sysdba或者SQL > conn sys as sysdba;查询字符集SQL> select userenv('language') from dual;USERENV('LANGUAGE')----------------------------------------------------AMERICAN_AMERICA.AL32UTF8

2、查询表注释

 select COLUMN_NAME,COMMENTSfrom  dba_col_commentswhere owner='user'  and table_name='table'

3、查询表[TABLE]/分区表[TABLE PARTITION]/索引[INDEX]占用空间

select segment_name, sum(bytes)/1024/1024 Mbytese from user_segments where segment_type='TABLE' group by segment_name;

4、查询表结构

select table_name,tablespace_name,num_rows,status,partitioned from user_all_tables;

5、查询分区表各分区记录情况

SELECT partition_name,num_rows FROM user_tab_partitions WHERE table_name = UPPER('table_name') order by partition_name

6、查询表空间使用情况

SQL > set linesize 200SQL > col tablespace for a25SQL > SELECT c.tablespace_name "tablespace",ROUND(a.bytes / 1048576, 2) "total(MB)",ROUND(b.bytes / 1048576, 0) "free(MB)",ROUND((a.bytes - b.bytes) / 1048576, 0) "used(MB)",ROUND(b.bytes / a.bytes * 100, 0) "free(%)",ROUND((a.bytes - b.bytes) / a.bytes, 2) * 100 "used(%)"FROM (SELECT tablespace_name,SUM(a.bytes) bytes,MIN(a.bytes) minbytes,MAX(a.bytes) maxbytesFROM sys.DBA_DATA_FILES aGROUP BY tablespace_name) a,(SELECT a.tablespace_name, NVL(SUM(b.bytes), 0) bytesFROM sys.DBA_DATA_FILES a, sys.DBA_FREE_SPACE bWHERE a.tablespace_name = b.tablespace_name(+)AND a.file_id = b.file_id(+)GROUP BY a.tablespace_name) b,sys.DBA_TABLESPACES cWHERE a.tablespace_name = b.tablespace_name(+)AND a.tablespace_name = c.tablespace_nameORDER BY 5;

7、查询所有主键与索引

select index_name,table_name from user_indexes;

8、查询建表索引

SQL > set long 999999;SQL > set pagesize 0;SQL > SELECT DBMS_METADATA.GET_DDL('INDEX','INDEX_NAME') FROM DUAL;

9、查看索引是否失效

SELECT index_name, partition_name, statusFROM user_ind_partitionsWHERE index_name = 'indexname'

10、将主键失效

ALTER TABLE TABLENAME MODIFY PRIMARY KEY DISABLE;

11、删除索引

 drop index INDEXNAME;

12、重建普通分区索引

ALTER INDEX INDEXNAME REBUILD PARTITION PARTITIONNAME

13、查询用户默认表空间

  select username,default_tablespace from dba_users;

14、TRUNCATE指定分区数据

  alter table TABLE_NAME truncate partition PARTITION_NAME;

15、后台执行SQL文件

  # nohup sqlplus username/password @sqlname.sql &

16、查询当前共享池状态

SELECT free_space,avg_free_size,used_space,avg_used_size,request_failures,last_failure_size   FROM v$shared_pool_reserved;SQL > show parameter pool;

数据库迁移时常用命令:

1、创建DIRECTORY

SQL > create directory dir_dmp as '/home/oracle/dir_dmp';

2、授权

SQL > grant read,write on directory dir_dmp to user;

3、只导出表数据

#expdp username/password DUMPFILE=dmpname.dmp DIRECTORY=dir_dmp LOGFILE=logname.log INCLUDE=TABLE_DATA TABLES=(table1,table2) / TABLES=(TABLENAME:PARTITION_NAME,TABLENAME:PARTITION_NAME)

4、导入表数据

# impdp username/password DUMPFILE=dmpname.dmp DIRECTORY=dir_dmp LOGFILE=logname.log

5、示例

导出schema

expdp user/password directory=dir_dmp dumpfile=schema.dmp schemas=user

导出数据

expdp user/password dumpfile=baseTbl.dmp DIRECTORY=dir_dmp LOGFILE=baseTbl.log SCHEMAS=user_SCHEMA INCLUDE=TABLE_DATA TABLES=(tbl1,tbl2)

导入数据

 impdp user/password dumpfile=baseTbl.dmp DIRECTORY=dir_dmp LOGFILE=baseTbl.log tables=table—name REMAP_SCHEMA=from-user:to-user

备注:

sftp免密码登陆配置

http://bbs.chinaunix.net/archiver/tid-508290.html

转载于:https://my.oschina.net/jinp/blog/347465

Oracle数据库迁移相关推荐

  1. Oracle数据库迁移-基础

    Oracle数据库迁移-基础 作为一个开发人员,数据库知识肯定是需要我们掌握的.但是目前公司的数据库都是有专门的DBA维护的,一般都是给我们一个环境地址,然后我们书写CRUD SQL.而且公司产品要求 ...

  2. oracle mysql增量迁移_深入浅出XTTS:Oracle数据库迁移升级利器

    内容来源:2017年3月11日,新炬网络高级工程师杨光在"DBAplus北京数据库技术沙龙"进行<深入浅出XTTS:Oracle数据库迁移升级利器>演讲分享.IT 大咖 ...

  3. navicat premium相关应用(将oracle数据库迁移到mysql等)

    navicat premium navicat premium连接到oracle数据库:http://blog.csdn.net/zjx86320/article/details/49464251: ...

  4. 使用Microsoft数据迁移助手将Oracle数据库迁移到SQL Server –安装过程和简短概述

    目标听众 (Intended audience) This document is intended for application developers and database administr ...

  5. Oracle数据库迁移到AWS云的方案

    转载:http://www.cnblogs.com/allcloud/p/6148513.html 当前云已经成为常态,越来越多的企业希望使用云来增加基础设施的弹性.减轻基础设施的维护压力,运维的成本 ...

  6. 冷迁移oracle数据库,Oracle数据库迁移--冷迁移

    Oracle数据库迁移 1. 需求分析: 为了提升数据库服务器的硬件配置,增强Oracle数据库的数据处理能力和存储能力,需要将原来的600G的空间增加到新服务器的2T空间. 2. 操作步骤: 1:具 ...

  7. oracle迁移几种方式,Oracle数据库迁移的几种方式

    Oracle数据库迁移的几种方式 我们常常需要对数据进行迁移,迁移到更性能配置更高级的主机OS上.迁移到远程的机房.迁移到不同的平台下,以下介绍ORACLE的几种数据库迁移方案: 一.exp/imp逻 ...

  8. Oracle数据库迁移postgreSQL

    Oracle数据库迁移PostgreSQL 本文将记录一下Oracle数据库迁移至PostgreSQL数据库的整个过程,主要使用Navicat Premium 16以及pgAdmin 4来实现.参考: ...

  9. oracle 转移是什么意思,Oracle数据库迁移的几种方式以及一些坑

    最近做了个oracle数据库迁移,有几种方式,我来列举几种:1.exp/imp         对象导出 2.expdp/impdp     数据泵导入导出 3.plsql的sql导出 4.navic ...

  10. 使用ADAM将Oracle数据库迁移至阿里云数据库PolarDB

    背景 什么是PolarDB? 以下内容引用自阿里云官方网站: 阿里云自研的云原生关系型数据库PolarDB有三个独立的引擎,分别100%兼容MySQL.100%兼容PostgreSQL.高度兼容Ora ...

最新文章

  1. .Net轻量状态机Stateless
  2. 冈萨雷斯《数字图像处理》读书笔记(九)——形态学图像处理
  3. birt脚本for循环语句_python循环语句(while amp; for)
  4. 中文linux最小,35M的中文linux硬盘简单安装方法Live-CD:SliTaz.tw-全世界最小的li
  5. 6001. mavlink 编译与移植
  6. discard python_Python学习第三天
  7. java实现导出excel表_Java导出网页表格Excel过程详解
  8. 十次方项目开发系列【3】:基于MyBatis Plus实现条件查询和分页
  9. java图书馆_java入门第三季--图书馆借书系统
  10. 高通音频驱动录音流程(一)
  11. leetcode加一
  12. 第六场问题 B: Bumped!(Dijkstra + 优先队列优化)
  13. 【Web3】什么是Web3?一个新的去中心化网络,或是最新的营销流行语
  14. Android 融云单聊与群聊消息免打扰功能设置与消息删除功能实现
  15. ps 帧动画 也说 gif 动图
  16. 心流状态---人们做事时内心的一种状态
  17. C语言之栈实现(详细)
  18. object.getClass()和Object.class的区别
  19. 中华英才网三年之痒 接受增持还是坚持独立IPO
  20. layui表格显示后台的多表的级联查询(多对多,多对一)带mybatis级联查询源码,已解决

热门文章

  1. 业务数据全用上也喂不饱AI?试试这个小样本学习工具包
  2. 靠WiFi信号就能检测呼吸跌倒!北大这项硬科技研究越来越藏不住了
  3. 波士顿动力机器狗新技能!跳绳园艺做家务,还有书法神技
  4. 我一个普通程序员,光靠GitHub打赏就年入70万,要不你也试试
  5. 6000星人气深度学习资源!架构模型技巧全都有,图灵奖得主LeCun推荐
  6. ccf题库中2015年12月2号消除类游戏
  7. Robots.txt - 禁止爬虫(转)
  8. 使用ionic创建IOS和Android 应用总结
  9. Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
  10. unicode字符显示方框_【硬核】韦东山:字符的编码方式