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;

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

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐