iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >oracle数据库迁移相关SQL语句
  • 378
分享到

oracle数据库迁移相关SQL语句

oracle数据库迁移相关SQL语句 2016-12-17 22:12:13 378人浏览 绘本
摘要

    数据库迁移常见的一种方式是使用命令将某个用户的所有数据导出,再将其导入新用户中。     创建用户需要DBA权限。 sqlplus /nolog conn /as sysdba 1、创建用户及授权,一般都是需要新建表空间和临时

oracle数据库迁移相关SQL语句

    数据库迁移常见的一种方式是使用命令将某个用户的所有数据导出,再将其导入新用户中。

    创建用户需要DBA权限。

sqlplus /nolog
conn /as sysdba

1、创建用户及授权,一般都是需要新建表空间和临时表空间

----删除用户
drop user sccsrm cascade;

----临时表空间
create temporary tablespace SCCSRM_TMP_TS
tempfile "/u01/app/oracle/oradata/SRM/datafile/SCCSRM_TMP_TS.dbf"      
size 50m                                                     
autoextend on                                              
next 50m maxsize 20480m                            
extent management local;

----数据表空间
create tablespace SCCSRM_DATA_TS
logging
datafile "/u01/app/oracle/oradata/SRM/datafile/SCCSRM_DATA_TS.dbf"      
size 50m
autoextend on
next 50m maxsize 20480m
extent management local;

----创建用户sccsrm
create user sccsrm identified by sccsrm default tablespace SCCSRM_DATA_TS temporary tablespace SCCSRM_TMP_TS;

----表空间授权给sccsrm
alter user sccsrm quota unlimited on SCCSRM_DATA_TS;

----授权sccsrm
grant connect,resource to sccsrm;

---查看表空间的位置
select * from dba_data_files;

---修改表空间dbf文件,设置成默认每次增加50M,无限大——————当出现表空间不足时
alter database datafile "/u01/app/oracle/oradata/SRM/datafile/SCCSRM_DATA_TS.dbf" autoextend on next 50M maxsize unlimited;

数据库迁移步骤,需要准备导入的excel的表清单


-----1、创建临时表的表sccsrm.TABLE_NAME_TEMP
create table sccsrm.TABLE_NAME_TEMP
(
  table_name VARCHAR2(100)
)
tablespace SCCSRM_DATA_TS;

-----2、查询当前用户apps所有表名,将其导出为Excel,用于sccsrm用户的临时表sccsrm.table_name_temp的导入数据
select t.table_name from user_tables t order by t.TABLE_NAME;

-----将导出的表清单Excel导入sccsrm.table_name_temp
-----3、表sccsrm.TABLE_NAME_TEMP数据去空
update sccsrm.table_name_temp t
set t.table_name=trim(t.table_name);


-----4、在apps用户登录下,授权表的查询权限给sccsrm用户
-----授权限给sccsrm的查询权限
declare
  cursor vdata is select t.table_name from sccsrm.table_name_temp t order by t.TABLE_NAME;
  --声明变量,记录一行数
  v          vdata%rowtype;
  v_sql varchar2(200);
begin
  --打开游标
   open vdata;
   --循环遍历取数据
   loop
     fetch vdata into v;
     exit when vdata%NOTFOUND;
     v_sql := "grant select on apps."||v.table_name||" to sccsrm";
     execute immediate v_sql;
   end loop;  
   --关闭游标
   close vdata;
end;

-----5、复制表数据——将apps用户下的表数据迁移至sccsrm用户下
declare
  cursor vdata is select t.table_name from sccsrm.table_name_temp t where not exists(select tt.TABLE_NAME from user_tables tt where tt.TABLE_NAME=t.table_name) order by t.TABLE_NAME;
  --声明变量,记录一行数
  v          vdata%rowtype;
  v_sql varchar2(600);
  n number;
begin
  --打开游标
   open vdata;
   --循环遍历取数据
   loop
     fetch vdata into v;
     exit when vdata%NOTFOUND;
     
     v_sql := "create table sccsrm."||v.table_name||" as select * from apps."||v.table_name;
     execute immediate v_sql;
   end loop;  
   --关闭游标
   close vdata;
end;

-----6、查看该用户apps下的所有索引
select t.index_name,t.index_type,t.table_name from user_indexes t order by t.table_name;
-----查询出apps所有索引,将其导出为Excel,再将Excel数据复制到PLSQL,再将其进行修改,以便在sccsrm用户执行
SELECT dbms_lob.substr(dbms_metadata.get_ddl("INDEX", INDEX_NAME)) || ";" from dba_indexes where owner = "APPS" and index_type="NORMAL";


-----7、在apps用户登录下,回收给sccsrm的查询权限
declare
  cursor vdata is select t.table_name from sccsrm.table_name_temp t order by t.TABLE_NAME;
  --声明变量,记录一行数
  v          vdata%rowtype;
  v_sql varchar2(200);
begin
  --打开游标
   open vdata;
   --循环遍历取数据
   loop
     fetch vdata into v;
     exit when vdata%NOTFOUND;
     v_sql := "revoke select on apps."||v.table_name||" from sccsrm";
     execute immediate v_sql;
   end loop;  
   --关闭游标
   close vdata;
end;


-----8、在apps用户登录下,查询出apps用户下所有序列
SELECT "create sequence sccsrm."||SEQUENCE_NAME||" minvalue "||MIN_VALUE||" maxvalue "||MAX_VALUE||
" start with "||LAST_NUMBER||" increment by "||INCREMENT_BY||" cache "||" 100;"   
  FROM DBA_SEQUENCES   
WHERE SEQUENCE_OWNER = "APPS";
-----查看当前用户的所有序列
select * from user_sequences t;


-----9、在apps用户登录下,删除表及其数据——apps用户的旧数据,强烈建议进行数据备份再执行删除操作,避免误操作造成数据丢失现象
declare
  cursor vdata is select t.table_name from sccsrm.table_name_temp t order by t.TABLE_NAME;
  --声明变量,记录一行数
  v          vdata%rowtype;
  v_sql varchar2(600);
begin
  --打开游标
   open vdata;
   --循环遍历取数据
   loop
     fetch vdata into v;
     exit when vdata%NOTFOUND;
     
     v_sql := "drop table apps."||v.table_name;
     execute immediate v_sql;
   end loop;  
   --关闭游标
   close vdata;
end;
---查看空表
select "alter table "||table_name||" allocate extent;"from user_tables WHERE SEGMENT_CREATED="NO";
select * from user_indexes WHERE SEGMENT_CREATED="NO";
select * from user_lobs where segment_created="NO";
select count(*) from v$process --当前的连接数
select value from v$parameter where name = "processes" --数据库允许的最大连接数

---修改最大连接数:
alter system set processes = 300 scope = spfile;

---重启数据库:
shutdown immediate;
startup;

---查看当前有哪些用户正在使用数据
SELECT osuser, a.username,cpu_time/executions/1000000||"s", sql_fulltext,Machine 
from v$session a, v$sqlarea b
where a.sql_address =b.address order by cpu_time/executions desc;

---查看oracle的性能
show parameter sga;

注意事项:迁移数据时,需要先迁移表结构、表数据,表索引,function及view、触发器,最后是表序列,因为在迁移数据库的过程中,旧数据库的序列有可能还在新增,最后才迁移序列可以避免新数据的序列冲突。

您可能感兴趣的文档:

--结束END--

本文标题: oracle数据库迁移相关SQL语句

本文链接: https://www.lsjlt.com/news/5809.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • oracle怎么做数据库迁移
    非常抱歉,由于您没有提供文章标题,我无法为您生成一篇高质量的文章。请您提供文章标题,我将尽快为您生成一篇优质的文章。...
    99+
    2024-05-21
  • sql数据库mdf文件怎么迁移
    今天小编给大家分享一下sql数据库mdf文件怎么迁移的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。sql数据库mdf文件迁移...
    99+
    2023-07-01
  • 迁移数据库之如何提前进行相关参数修改
    这篇文章主要介绍迁移数据库之如何提前进行相关参数修改,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 开归档进程数undo间隔密码有效期临时表空间查看,验...
    99+
    2024-04-02
  • 怎么迁移SQL 2005系统数据库
    这篇文章主要讲解了“怎么迁移SQL 2005系统数据库”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么迁移SQL 2005系统数据库”吧! 移动mast...
    99+
    2024-04-02
  • Oracle数据迁移MySQL
    前言: 现今,Oracle数据迁移MySQL的需求已经越来越普遍,主要的迁移场景大致可以分为三类,第一类是涉及小表以及少量表的一次性迁移,无需进行增量同步,第二类是涉及大表以及多表的一次性迁移,第三类是涉及增量实时同步,而对于数据的迁移方法...
    99+
    2023-09-26
    oracle mysql 数据库 运维 dba
  • 数据库SQL Azure如何迁移到本地SQL Server
    这篇文章主要介绍了数据库SQL Azure如何迁移到本地SQL Server,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 ...
    99+
    2024-04-02
  • mysql数据库迁移
    目录 背景迁移数据库 背景 公司有个项目,刚开始数据量不是大的时候,数据库和服务上的所有应用数据都放在一个旧小盘中,随着项目数据的增长,旧的磁盘被占满了,导致系统无法写入数据,我和同事排查了很长时间,最终确定是磁盘被占满导致的一...
    99+
    2023-08-23
    数据库 mysql
  • Oracle数据库SQL语句的执行过程
    这篇文章主要讲解了“Oracle数据库SQL语句的执行过程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Oracle数据库SQL语句的执行过程”吧!1、用户...
    99+
    2024-04-02
  • oracle数据库怎么迁移到另一个数据库
    Oracle数据库迁移到另一个数据库通常需要使用数据迁移工具或者手动迁移的方式。下面是一些迁移Oracle数据库的常用方法: 使用...
    99+
    2024-05-07
    oracle
  • 怎么将关系型数据库迁移到NoSQL数据库
    将关系型数据库迁移到NoSQL数据库可以通过以下步骤完成: 确定迁移的目的和需求:首先需要确定为什么要迁移数据库,是为了提高性能...
    99+
    2024-05-07
    NoSQL 数据库
  • 如何使用DataPump迁移Oracle数据库
    这篇文章主要介绍如何使用DataPump迁移Oracle数据库,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!之前测试过使用RMAN迁移Oracle数据库(Oracle11.2.0.1...
    99+
    2024-04-02
  • SQL数据库语句大全
    目录基础创建数据库删除数据库备份sql server创建 备份数据的 device开始 备份创建新表根据已有的表创建新表:删除新表增加一个列添加主键删除主键创建索引删除索引创建视图删...
    99+
    2024-04-02
  • 如何实现oracle数据迁移到db2数据库
    这篇文章将为大家详细讲解有关如何实现oracle数据迁移到db2数据库,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、表结构迁移在plsql中选择表----->d...
    99+
    2024-04-02
  • oracle数据库迁移的方法是什么
    Oracle数据库迁移的方法有以下几种:1. 物理迁移:将源数据库的数据文件、控制文件、重做日志文件等物理文件直接复制到目标数据库。...
    99+
    2023-08-21
    oracle数据库
  • 【MySQL】数据库SQL语句之DML
    目录 前言: 一.DML添加数据 1.1给指定字段添加数据 1.2给全部字段添加数据 1.3批量添加数据 二.DML修改数据 三.DML删除数据 四.结尾 前言:   时隔一周,啊苏今天来更新啦,简单说说这周在做些什么吧,上课、看书、...
    99+
    2023-08-31
    数据库 sql mysql
  • MySQL数据库 | SQL语句详解
    MySQL数据库基本操作——DDL DDL解释: 数据库的常用操作 表结构的常用操作 修改表结构 数据库的常用操作 查看所有的数据库show databases;创建数据库create database if not exists 表名;切...
    99+
    2023-08-23
    数据库 sql mysql
  • SQL Server中如何迁移数据
    本篇文章给大家分享的是有关SQL Server中如何迁移数据,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1.通过工具"DTS&qu...
    99+
    2024-04-02
  • 数据库SQL语句的使用
    这篇文章主要讲解了“数据库SQL语句的使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“数据库SQL语句的使用”吧!1、创建数据库 create ...
    99+
    2024-04-02
  • postgresql数据库数据怎么迁移
    要迁移PostgreSQL数据库数据,可以使用以下几种方法: 使用pg_dump和pg_restore命令:可以使用pg_dump...
    99+
    2024-04-17
    postgresql
  • oracle数据库查看锁表的sql语句整理
    目录关键表查看锁表的SIDsql1sql2查看锁表执行语句用sid查询单个查询所有加锁的sql查询未提交事务的SQL杀死锁总结 关键表 V$LOCKED_OBJECT :记录锁信息的表v$sessio...
    99+
    2023-10-26
    oracle查看锁表sql语句 oracle 锁表如何查看 oracle查找锁表语句
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作