Oracle数据库迁移
为什么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数据库迁移相关推荐
- Oracle数据库迁移-基础
Oracle数据库迁移-基础 作为一个开发人员,数据库知识肯定是需要我们掌握的.但是目前公司的数据库都是有专门的DBA维护的,一般都是给我们一个环境地址,然后我们书写CRUD SQL.而且公司产品要求 ...
- oracle mysql增量迁移_深入浅出XTTS:Oracle数据库迁移升级利器
内容来源:2017年3月11日,新炬网络高级工程师杨光在"DBAplus北京数据库技术沙龙"进行<深入浅出XTTS:Oracle数据库迁移升级利器>演讲分享.IT 大咖 ...
- navicat premium相关应用(将oracle数据库迁移到mysql等)
navicat premium navicat premium连接到oracle数据库:http://blog.csdn.net/zjx86320/article/details/49464251: ...
- 使用Microsoft数据迁移助手将Oracle数据库迁移到SQL Server –安装过程和简短概述
目标听众 (Intended audience) This document is intended for application developers and database administr ...
- Oracle数据库迁移到AWS云的方案
转载:http://www.cnblogs.com/allcloud/p/6148513.html 当前云已经成为常态,越来越多的企业希望使用云来增加基础设施的弹性.减轻基础设施的维护压力,运维的成本 ...
- 冷迁移oracle数据库,Oracle数据库迁移--冷迁移
Oracle数据库迁移 1. 需求分析: 为了提升数据库服务器的硬件配置,增强Oracle数据库的数据处理能力和存储能力,需要将原来的600G的空间增加到新服务器的2T空间. 2. 操作步骤: 1:具 ...
- oracle迁移几种方式,Oracle数据库迁移的几种方式
Oracle数据库迁移的几种方式 我们常常需要对数据进行迁移,迁移到更性能配置更高级的主机OS上.迁移到远程的机房.迁移到不同的平台下,以下介绍ORACLE的几种数据库迁移方案: 一.exp/imp逻 ...
- Oracle数据库迁移postgreSQL
Oracle数据库迁移PostgreSQL 本文将记录一下Oracle数据库迁移至PostgreSQL数据库的整个过程,主要使用Navicat Premium 16以及pgAdmin 4来实现.参考: ...
- oracle 转移是什么意思,Oracle数据库迁移的几种方式以及一些坑
最近做了个oracle数据库迁移,有几种方式,我来列举几种:1.exp/imp 对象导出 2.expdp/impdp 数据泵导入导出 3.plsql的sql导出 4.navic ...
- 使用ADAM将Oracle数据库迁移至阿里云数据库PolarDB
背景 什么是PolarDB? 以下内容引用自阿里云官方网站: 阿里云自研的云原生关系型数据库PolarDB有三个独立的引擎,分别100%兼容MySQL.100%兼容PostgreSQL.高度兼容Ora ...
最新文章
- .Net轻量状态机Stateless
- 冈萨雷斯《数字图像处理》读书笔记(九)——形态学图像处理
- birt脚本for循环语句_python循环语句(while amp; for)
- 中文linux最小,35M的中文linux硬盘简单安装方法Live-CD:SliTaz.tw-全世界最小的li
- 6001. mavlink 编译与移植
- discard python_Python学习第三天
- java实现导出excel表_Java导出网页表格Excel过程详解
- 十次方项目开发系列【3】:基于MyBatis Plus实现条件查询和分页
- java图书馆_java入门第三季--图书馆借书系统
- 高通音频驱动录音流程(一)
- leetcode加一
- 第六场问题 B: Bumped!(Dijkstra + 优先队列优化)
- 【Web3】什么是Web3?一个新的去中心化网络,或是最新的营销流行语
- Android 融云单聊与群聊消息免打扰功能设置与消息删除功能实现
- ps 帧动画 也说 gif 动图
- 心流状态---人们做事时内心的一种状态
- C语言之栈实现(详细)
- object.getClass()和Object.class的区别
- 中华英才网三年之痒 接受增持还是坚持独立IPO
- layui表格显示后台的多表的级联查询(多对多,多对一)带mybatis级联查询源码,已解决
热门文章
- 业务数据全用上也喂不饱AI?试试这个小样本学习工具包
- 靠WiFi信号就能检测呼吸跌倒!北大这项硬科技研究越来越藏不住了
- 波士顿动力机器狗新技能!跳绳园艺做家务,还有书法神技
- 我一个普通程序员,光靠GitHub打赏就年入70万,要不你也试试
- 6000星人气深度学习资源!架构模型技巧全都有,图灵奖得主LeCun推荐
- ccf题库中2015年12月2号消除类游戏
- Robots.txt - 禁止爬虫(转)
- 使用ionic创建IOS和Android 应用总结
- Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
- unicode字符显示方框_【硬核】韦东山:字符的编码方式