Oracle数据库迁移常用命令和问题

一.启动DB和监听

在启动、关闭或者重启oracle监听器之前确保使用lsnrctl status命令检查oracle监听器的状态:
1、$lsnrctl status:检查当前监听器的状态
2、$lsnrctl start [listener-name] 启动所有的监听器,可以指定名字来启动特定的监听器
3、$lsnrctl stop [listener-name]  关闭所有的监听器,可以指定名字来关闭特定的监听器
4、$lsnrctl reload  重启监听器,此命令可以代替lsnrctl stop,lsnrctl start
5、lsnrctl hep      可以显示所有可用的监听器命令

-- 切换到oracle用户
su - oracle 
-- 切换到需要使用的实例
echo $ORACLE_SID
export ORACLE_SID=实例名
-- 关闭数据库
shutdown immediate

如果出现idle实例 就说明实例没有起来,需要启动监听

startup


创建

创建表空间

show user;  

select * from dba_tablespaces ;
--drop tablespace dwcr including contents;

select * from DBA_USERS;
--drop user dwcrweb cascade;

select tablespace_name,file_id,bytes/1024/1024,file_name from dba_data_files order by file_id;--查看表空间文件路径

select   username,default_tablespace ,TEMPORARY_TABLESPACE  from   dba_users;--查看用户和默认表空间的关系


create temporary tablespace dwcr_temp
tempfile 'D:\APP\MIPENG\ORADATA\ORCL\dwcr_temp01.ora'
size 100m
autoextend on
next 100m
maxsize unlimited
extent management local;

create tablespace dwcr
logging
datafile 'D:\APP\MIPENG\ORADATA\ORCL\dwcr01.ora'
size 100m
autoextend on
next 100m
maxsize unlimited
extent management local;


创建用户
create user dwcr identified by dwcr
default tablespace dwcr
temporary tablespace dwcr_temp;
grant dba to dwcr;

select * from dba_directories;



查询创建结果
查看用户
select * from DBA_USERS t where t.USERNAME = 'DWCR'

查看表空间
select * from DBA_TABLESPACES t where t.TABLESPACE_NAME = 'DWCR'

查看表空间文件存储位置
select * from SYS.DBA_DATA_FILES t where t.TABLESPACE_NAME = 'DWCR'


准备工作
1.在OS中创建目录 注意权限问题
2.在Oracle中创建映射目录
create or replace directory DWCR2016 as 'C:\dwcrdump';

3.用管理员授权
sqlplus sys/lab1107@192.168.1.100:1521/orcl  as sysdba
grant read,write on directory DWCR2016 to dwcr;



泵入数据
impdp dwcr/dwcr@192.168.1.100:1521/orcl directory=DWCR2016 schemas=dwcr dumpfile=dwcr.dmp
-- LOGFILE=dwcr.log  remap_tablespace=dwcr:dwcr2 remap_schema=dwcr:dwcr2     version=10.2.0.1.0



泵出数据
expdp  dwcr/dwcr@192.168.1.100:1521/one  DIRECTORY=dp_dwcr DUMPFILE=dwcr.dmp  LOGFILE=dwcr.log   SCHEMAS=dwcr



查看和修改表空间
--1、查看表在那个表空间
  select tablespace_name,table_name from user_talbes where table_name='employ';

--2、获取用户的默认表空间

  select   username,   DEFAULT_TABLESPACE     from   dba_users where username='scott';

--3、查看表空间所有的文件  

  select * from dba_data_files where tablespace_name='USERS';

--4、查看表空间使用情况:


    

SELECT tbs 表空间名,                                    
    sum(totalM) 总共大小M,                                    
    sum(usedM) 已使用空间M,                                    
    sum(remainedM) 剩余空间M,                                    
    sum(usedM)/sum(totalM)*100 已使用百分比,                            
    sum(remainedM)/sum(totalM)*100 剩余百分比                            
    FROM(                                            
     SELECT b.file_id ID,                                    
     b.tablespace_name tbs,                                    
     b.file_name name,                                    
     b.bytes/1024/1024 totalM,                                    
     (b.bytes-sum(nvl(a.bytes,0)))/1024/1024 usedM,                        
     sum(nvl(a.bytes,0)/1024/1024) remainedM,                            
     sum(nvl(a.bytes,0)/(b.bytes)*100),                                
     (100 - (sum(nvl(a.bytes,0))/(b.bytes)*100))                            
     FROM dba_free_space a,dba_data_files b                            
     WHERE a.file_id = b.file_id                                
     GROUP BY b.tablespace_name,b.file_name,b.file_id,b.bytes                    
     ORDER BY b.tablespace_name                                
    )                                            
    GROUP BY tbs         

                               
                                                
--5、扩展表空间 

  alter database datafile 'D:\Oracle\PRODUCT\ORADATA\TEST\USERS01.DBF' resize 50m;
  --自动增长  

  alter database datafile 'D:\ORACLE\PRODUCT\ORADATA\TEST\USERS01.DBF' autoextend on next 50m maxsize 500m;    
  --增加数据文件

   alter tablespace yourtablespacename add datafile 'd:\newtablespacefile.dbf' size 5m;    


查看和修改用户默认表空间
alter user dwcr default tablespace dwcr temporary tablespace temp;
alter user dwcr TEMPORARY TABLESPACE DWCR_TEMP;
alter database default temporary tablespace temp;


Oracle错误
1.Permission Deny
id oracle
more /proc/sys/vm/hugetlb_shm-group
echo 503 >/proc/sys/vm/hugetlb_shm-group
more /proc/sys/vm/hugetlb_shm-group

2.ORA-00205  没挂云存储
/mnt/DCI_DB/

3.启动数据库、监听
sqlplus /nolog
    conn / as sysdba
    startup
lsnrctl start



实验一:单实例
1.关闭数据库服务  shutdown immediate  关闭监听 lsnrctl stop

2.启动监听
lsnrctl start



3.启动数据库(实例)
startup
客户端连接成功


实验二:多实例
1.查看监听状态lsnrctl status

2.关闭到指定实例
sqlplus /nolog
conn /@orcl as sysdba
select instance_namefrom gv$instance; 

3.连接并启动指定实例
set ORACLE_SID=orcl
sqlplus /nolog
conn / as sysdba

startup

4.关闭监听
lsnrctl stop;
客户端无法连接到服务端了,但是服务端自己可以本地连接
sqlplus /nolog
conn dwcr/dwcr  登录后可以查询表  
但是现在没有指定实例名登录,oracle怎么知道去哪个实例下找用户名和对应的表空间?
我用istc2/istc2登录了一次 也成功了,而且也能查表
解决:istc2登录成功是因为orcl实例下也有这个用户,哪个实例是由set ORACLE_SID确定的
tip:lsnrstl start 执行后会有一定的延时,容易让人误以为监听无法监听到已经启动的实例。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值