Oracle数据库迁移方案

1 在数据迁移时,用户首先有权限修改数据库,并且进行表空间创建、删除等权利

例如:

select * from dba_tab_privs where grantee='SCOT'; ---查看SCOTT权限(sys用户登录)

显示结果为:

select * from dba_role_privs where grantee='SCOT'; --查看SCOTT角色

显示结果为:

(1) 如果用户被锁定通过以下语句来解锁表

alter user scott account unlock; --解锁表

(2) 授予用户权限

grant connect to scott; --连接数据库权限
grant resource to scott; --授予创建表等基本权限
grant dba to scott; --授予DBA权限

2 建立表空间

严格意义上在先执行如下命令而不是直接开始建立表空间

drop tablespace 表空间名称;

然后开始创建表空间

create tablespace xx_bp;
datafile 'F:\app\xx_bp.ora' --表空间的本地位置
size 50M
autoextend on next 1M;

附:datafile 为表空间对应的数据文件,后面跟随数据文件的路径及数据文件名

size 为数据文件的初始大小

autoextend on 表示数据随着数据量的增加自动扩大
一般在创建表的时候会创建多个表空间用来存放各种数据,比如我们一般会创建历史表空间(HS)、索引表空间等。另外先建立表空间,然后建立用户时指向此表空间,否则oracle会默认将用户指向sys表空间

3 创建用户

create user 用户名 indentified by 密码 tablespace xx_bp,xx_hs,xx_indx;

附: identified by 为创建用户密码的关键字,后面跟随的是用户密码

4 对数据库的用户进行授权

grant connect,resource to 用户名

将connect 和resource 角色授予用户

查看当前用户有哪些角色

select * from user_role_privs;

5 建立数据结构、存储过程、视图、序列

(1)创建表

create table XX.BP_OPER_DETAIL_TB
(
task_id VARCHAR2(50) not null,
flow_id NUMBER(19) not null,
task_no VARCHAR2(50) not null,
flow_node VARCHAR2(4) not null,
workitemid NUMBER(19) not null,
trans_id VARCHAR2(10) not null,
trans_no CHAR(6) not null,
vouch_group VARCHAR2(10) not null,
teller_no VARCHAR2(15) default '',
user_no VARCHAR2(15) not null,
organ_no VARCHAR2(10) not null,
areacode VARCHAR2(5) default '',
create_time CHAR(14) not null,
checkout_time CHAR(14) not null,
checkin_time CHAR(14) default '',
suspend_time CHAR(14) default '',
resume_time CHAR(14) default '',
trans_time INTEGER default 0,
release_time INTEGER default 0,
state INTEGER not null,
result VARCHAR2(10) default '',
reason VARCHAR2(512) default ''
)
tablespace XX_BP pctfree 10 initrans 1 maxtrans 255 storage
(
initial 64K next 8K minextents 1 maxextents unlimited
);

创建索引约束调节等

alter table XX.BP_OPER_DETAIL_TB add constraint BP_OPER_DETAIL_PK primary key
(
TASK_ID, WORKITEMID, FLOW_NODE
)
using index tablespace XX_BP pctfree 10 initrans 2 maxtrans 255 storage
(
initial 64K next 1M minextents 1 maxextents unlimited
);

6 导入数据

insert into SM_FIELD_PARENT_TB (field_id, parent_field, last_modi_date)
values ('VH0007', 'VH0000', '20160420074707');
insert into SM_FIELD_PARENT_TB (field_id, parent_field, last_modi_date)
values ('VH0008', 'VH0000', '20160420074729');
insert into SM_FIELD_PARENT_TB (field_id, parent_field, last_modi_date)
values ('VH0010', 'VH0000', '20160420074818');
insert into SM_FIELD_PARENT_TB (field_id, parent_field, last_modi_date)
values ('VH0012', 'VH0000', '20160420074914');
insert into SM_FIELD_PARENT_TB (field_id, parent_field, last_modi_date)
values ('VH0016', 'VH0000', '20160420075055');
insert into SM_FIELD_PARENT_TB (field_id, parent_field, last_modi_date)
values ('VH0017', 'VH0000', '20160420075129');
insert into SM_FIELD_PARENT_TB (field_id, parent_field, last_modi_date)
values ('VH0021', 'VH0000', '20160420075305');
commit;

最后重新登陆数据库,验证新增的迁移数据库

时间: 2016-11-24

mysql数据库迁移至Oracle数据库

本文实例为大家分享了java获取不同路径的方法,供大家参考,具体内容如下 1.使用工具: (1) Navicat Premium (2) PL/SQL Developer 11.0 (3) Oracle SQL Developer 4.0.0.12.84(点击可进入下载页面) 特别说明:最初我用的一直是高版本的SQL Developer,但在数据库移植到大概两分钟的时候,总是报错,而错误信息又不明确.最后换成 Oracle SQL Developer 4.0.0.12.84,才把问题解决掉!如果

oracle 数据库数据迁移解决方案

去年年底做了不少系统的数据迁移,大部分系统由于平台和版本的原因,做的是逻辑迁移,少部分做的是物理迁移,有一些心得体会,与大家分享. 首先说说迁移流程,在迁移之前,写好方案,特别是实施的方案步骤一定要写清楚,然后进行完整的测试.我们在迁移时,有的系统测试了四五次,通过测试来完善方案和流程. 针对物理迁移,也即通过RMAN备份来进行还原并应用归档的方式(这里不讨论通过dd方式进行的冷迁移),虽然注意的是要将数据库设为force logging的方式,在用RMAN做全备之前,一定要执行: 否则可能会产

DB2数据库切换为oracle数据库经验教训总结(必看篇)

由于DB2数据库使用的人太少,公司有没有专业的DBA,决定把数据库从DB2数据库切换为oracle数据库,本以为很简单,可当真的切换时,却发现,有很多东西出乎意料. 由于系统底层使用的是ORM映射工具,由于没有使用存储过程,自定义函数,触发器,因此我以为系统改动不大,但发现的问题却不少. 1.我们的主键基本上都采用共的是Sequence,没有采用自动增长作为主键. 但获取Sequence在两种数据库中是不相同的. DB2获取的方法 values next value for eas.seq_Se

oracle数据迁移到db2数据库的实现方法(分享)

1.表结构迁移 在plsql中选择表----->dbmsMetadata----->ddl 注意:这时表的创建.约束等信息将会显示在窗口中.可以将创建表的语句直接拷贝值sqldbx(连接db2数据库的工具)中修改字段的类型,如varchar2转化为varchar,number转化为integer.还有primary key.unique的变化. 2.表数据迁移 在Plsql中选择表------>右键------>qurey data(显示出所有数据)---->选择需要迁移的数

Oracle数据加载和卸载的实现方法

在日常工作中:经常会遇到这样的需求: Oracle 数据表跟文本或者文件格式进行交互:即将指定文件内容导入对应的 Oracle 数据表中:或者从 Oracle 数据表导出. 其他数据库中的表跟Oracle数据库进行交互. 若是少量数据:可选择的解决方案有很多.常用的用 Pl/SQL developer工具,或者手动转换为 INSERT 语句,或者通过API.但数据量大:用上面的方法效率太烂了.本文来说说 Oracle 数据的加载和卸载. Oracle中的DBLINK Oracle加载数据-外部表

执行Django数据迁移时报 1091错误及解决方法

问题描述 今天在Pycharm 中的Terminal下,执行数据迁移操作时,第一步: Python manage.py makemigrations ,是没有任何问题,但就是在执行真正的数据迁移时,也就是第二步:Python manage.py migrate 时,报错,错误截图如下 大概的意思就是   错误代码1091,原因是  "无法删除'dt_id':请检查列/键是否存在". 问题的解决 分析: 可能是数据库中的字段结构,已经完成了对此字段的修改,但是在执行数据迁移的时候,生成的

C#实现Excel表数据导入Sql Server数据库中的方法

本文实例讲述了C#实现Excel表数据导入Sql Server数据库中的方法.分享给大家供大家参考,具体如下: Excel表数据导入Sql Server数据库的方法很多,这里只是介绍了其中一种: 1.首先,我们要先在test数据库中新建一个my_test表,该表具有三个字段tid int类型, tname nvarchar类型, tt nvarchar类型 (注意:my_test表中的数据类型必须与Excel中相应字段的类型一致) 2. 我们用SELECT * FROM  OPENROWSET(

Django 接收Post请求数据,并保存到数据库的实现方法

要说基本操作,大家基本都会,但是有时候,有些操作使用小技巧会节省很多时间. 本篇描述的就是使用dict小技巧,保存到数据库,用来节省大家编码的工作量. 主要内容:通过for循环拿到post表单中的值并保存到一个dict中,然后通过**dict保存到数据库中. 1.用户提交了一个表单,表单内容包含csrf. 2.服务端除了表单中的csrf要过滤掉,其它的都要保存到数据库中. 3.具体看下方代码: 下面的代码分别为修改和保存,其中修改是根据ID修改的. 要注意, 1.保存前的resourcesOld

如何把sqlserver数据迁移到mysql数据库及需要注意事项

在项目开发中,有时由于项目开始时候使用的数据库是SQL Server,后来把存储的数据库调整为MySQL,所以需要把SQL Server的数据迁移到MySQL.下面是小编日常整理的一种sqlserver数据库迁移的方法. 一.SQL Server中常用数据类型与MySQL不同的地方 二.将SQL Server数据迁移到MySQL需要注意的一些问题 1.唯一索引的不同,sql server的唯一索引的字段只能允许存在一个null值,而mysql,一直oracle中唯一索引对应的字段都允许存在多个n

laravel 数据迁移与 Eloquent ORM的实现方法

导语 数据库可以说是后端开发最常用,也是最重要的部分.laravel 提供了很实用的 Eloquent ORM 模型类,简单.直观的与数据库进行交互.同时使用数据迁移管理数据库,可以与团队进行共享以及编辑.二者的更多介绍请查看下方的文档. 以下使用二者进行示例,需求是记录用户浏览记录.请勿将本示例带入实际项目中,本文仅作示例.实际项目根据需求进行记录,以及选择存储方式. 创建数据表 第一步当然是创建数据表了.使用 artisan 命令可以很方便的创建模型以及数据迁移.php artisan ma

C#连接db2数据库的实现方法

通过OLE DB for DB2驱动 复制代码 代码如下: string strSql = @"select phone_no from no_store where id<5";            string strConn = "Provider=IBMDADB2;Data Source=数据库名;UID=用户名;PWD=密码;";            using (OleDbConnection conn = new OleDbConnectio

直接拷贝数据文件实现Oracle数据迁移

背景介绍 由于机房服务器变更,需要将 Oracle 迁移到一台新服务器上去. 以下是环境说明: 原服务器地址: 192.168.1.15 新服务器地址: 192.168.1.18 操作系统:都是 CentOS 6.5 数据库版本: 都是 11.2.0.1 新服务器上安装和配置 Oracle 192.168.1.18 在新服务器(192.168.1.18)上安装了Oracle,为了保险,主机名.数据库实例名.安装目录都和原数据库保持一致.具体安装方法可参考:centos 6.5下安装oracle

将ACCESS数据库迁移到SQLSERVER数据库两种方法(图文详解)

ACCESS2000文件 用ACCESS2007打开,并迁移到SQLSERVER2005里 打开ACCESS2007的数据库工具 方法一:使用ACCESS2007自带的数据库迁移工具 1.打开ACCESS2007的数据库迁移向导 2.点击SQLSERVER按钮,弹出升迁向导对话框 3.选择新建数据库 4.输入计算机名,我的本地计算机名字叫joe,因为SQLSERVER安装在本地,所以选择使用可信连接就可以了 数据库名称默认就可以了 5.选择所有表,移动到右边框 6.把表索引也一起升迁到SQLSE