欢迎投稿

今日深度:

数据库迁移命令备忘

数据库迁移命令备忘


数据库迁移命令备忘
 
Name
Value
查看表空间及位置
select a.tablespace_name ,b.file_name,a.block_size,a.block_size,b.bytes/1024/1024 "Sum MB" from dba_tablespaces a,dba_data_files b where a.tablespace_name=b.tablespace_name;
 
 
 
创建表空间及指定位置
CREATE SMALLFILE TABLESPACE "MDB_TEST"
DATAFILE '/home/itiltest/itildbs/oradata/ITILRPDB/MDB_DATESPACE3'
SIZE 1M
AUTOEXTEND ON NEXT 10M
MAXSIZE UNLIMITED LOGGING
EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO DEFAULT NOCOMPRESS
改变表空间的数据文件位置
1.alter tablespace MDB_DATA offline;
2.alter database rename file '/home/oracle/app/oracle11g/dbs/homeitiltestitildbsoradataITILRPDBMDB_INDEXSPACE' to /home/itiltest/itildbs/oradata/ITILRPDB/homeitiltestitildbsoradataITILRPDBMDB_INDEXSPACE'
3.alter tablespace MDB_DATA online;
备注:运行未成功正在查找原因
删除表空间
Drop  tablesapce xxx
备注:如果有内容的话使用 Drop tablespace xxx including contents
Widows下文件导入
C:\Users\zhangxuegang>imp mdbadmin/mdbadmin@orcl file=i:\reportData\(
d1.dmp,d2.dmp,d3.dmp,d4
.dmp,d5.dmp,d6.dmp,d7.dmp,d8.dmp,d9.dmp,d10.dmp,d11.dmp,d12.dmp,d13.dmp,d14.dmp,
d15.dmp
) tables=ca_contact ignore =y
 
 
impdp mdbadmin/password@mdb directory =dump_data dumpfile=d1.dmp,d2.dmp,d3.dmp,d4.dmp,d5.dmp,d6.dmp,d7.dmp,d8.dmp,d9.dmp,d10.dmp,d11.dmp,d12.dmp,d13.dmp,d14.dmp,d15.dmp full=y
Unix下文件导入
I:\reportData>impdp mdbadmin/mdbadmin@orcl directory =dump_report dumpfile=d1.d
mp,d2.dmp,d3.dmp,d4.dmp,d5.dmp,d6.dmp,d7.dmp,d8.dmp,d9.dmp,d10.dmp,d11.dmp,d12.d
mp,d13.dmp,d14.dmp,d15.dmp tables=usp_contact
先创建directory 路径
备注:这个路径是指定dumpfile的相对路径
1.create directory dump_data as '/home/itiltest/data';
2.select * from dba_directories
3.grant read, write on directory dump_data to mdbadmin;
由于进行全库迁移使用expdp方式导出全库,即指定full=y,但是在其他机器上导入时,由于expdp全库导出时已经自带建立表空间的脚本,而新机器盘符与原来不一样,无法创建表空间,如何在导入之前指定表空间的位置呢。比如原来是"I:\oracle\product\test" 而新机器就没有I盘,如何手动指定到"E:\oracle"文件夹下
impdp scott/tiger FULL=y directory=dumpo dumpfile=full.dmp  REMAP_DATAFILE='I:\oracle\product\test\test.dbf':'E:\oracle\product\test\test.dbf'
解决clob字段不能直接用dblink取的问题
错误的名称:dblink无法使用从远程表选择的lob定位器的问题
 
zhangxuegang 于 2013/3/15 10:59 修改
 
解决方法:1.可以先创建临时表,然后把远程的blob字段的表克隆到临时表中,然后进行链接操作
代码:
Create global temporary table qtggxx_temp as select  titie ,content ,create_date,ref_id from qtggxx@test_link;
                       2.同过dblink创建视图查看远程数据
Create or replace view qtggxx as select "title",(select p.cotent from qtggxx_temp p where p.ref_id=ref_id )as content,"create_date","ref_id","source_ref_url"
,"bm_id" from qtggxx@test_link
 
 
只导入表结构
expdb u1/u1@orcl directory=xxx content = metadata_only  dumpfile =xxx.dmp schemas =xx logfule =u1.log
文件导入导出的大小比例
dmp文件——dmp.gz的压缩比例为1——5.3
dmp导入数据库后的物理存储空间大小——导入之后变小(待验证)
查看表数据占用的物理存储
select segment_name,segment_type,bytes/1024/1024 from user_segments where segment_name='COGNOS_CHG_T';
Aix导入之前设置环境
export ORACLE_HOME=/home/oracle/app/oracle11g/
export ORACLE_SID=itilrpdb
export ORACLE_BASE=/home/itiltest/itildbs
export PATH=$ORACLE_HOME/bin:$PATH
export PATH=/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin:/usr/java5/jre/bin:/usr/java5/bin:/home/oracle/app/oracle11g/bin
删除用户,及删掉使用的进程
1.drop user mdbadmin cascade;
2.select username ,sid,serial# from v$session
3.alter  system kill session '31,17'
Dblink创建
create database link ITILDB_LINK
  connect to MDBADMIN
  IDENTIFIED BY "ca1234"
  using '(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 128.64.96.76)(PORT = 1522))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = mdb)
    )
  )';
 
查看 oracle内存使用情况
select a.sid,b.name,a.value from v$sesstat a,v$statname b
where (b.name like '%uga%' or b.name like '%pga%') and a.statistic# = b.statistic#
order by sid
函数的创建
CREATE OR REPLACE FUNCTION "DATE_TO_SEC" (strDate IN CHAR)
--将日期型转换为整型秒
        RETURN INT
AS
        ret NUMBER;
        iDate DATE;
        tDate varchar2(30);
BEGIN
 
        if(length(strDate))>=18 then
         tDate:='YYYY-MM-DD HH24:MI:SS';
        elsif (length(strDate))>7 then
         tDate:='YYYY-MM-DD';
        else
         tDate:='YYYY-MM';
        end if;
        iDate:=TO_DATE(strDate,tDate);
        ret := (iDate-TO_DATE('1970-1-1 8:0:0','YYYY-MM-DD HH24:MI:SS'))*(24*60*60);
RETURN ret;
END ;
物化视图的创建
create materialized view COGNOS_AL_CJS_MV
refresh complete on demand
as
select    distinct
          w.object_id                     变更ID,
          sec_to_date(t.open_date)        时间,
          get_per_site_name(w.ASSIGNEE)   单位,
          GET_PER_DEPT_NAME(w.ASSIGNEE)   部门,
          GET_analyst(w.ASSIGNEE)         经手人ID,
          GET_person(w.ASSIGNEE)          经手人,
          get_person(w.group_id)          经手组,
          w.ASSIGNEE                      ID,
          t.status                        类型
     from chg t, wf w
     where t.id = w.object_id
     and t.status <> 'CL'
普通视图的创建
create or replace view cognos_fissue_v as
select
       t.parent                                               parent_id,
       t.ref_num                                              任务单号,
       t.z_string7                                            任务名称,
       (select last_name from ca_contact where contact_uuid=t.z_string56) 任务负责人,
       t.z_string15                                           负责人电话,
       t.z_string8                                            功能需求编号,
       (select name from ca_site where id=t.z_site1)          功能需求部门,
       t.z_string10                                           主要业务功能描述,
       t.status                                               状态,
       sec_to_date(t.open_date)                               建单时间,
       sec_to_date(t.close_date)                              关单时间,
       t.z_string38                                           功能开发负责人
 from issue t where t.category='CHG993'
 
查看某用户表空间的大小
创建表空间的大小
SELECT 
DBMS_METADATA.GET_DDL('TABLESPACE', TS.tablespace_name)
FROM 
DBA_TABLESPACES TS
 
 
查看某表的列数
select count(*) from dba_tab_columns where owner='' and table_name='';
 
 
select count(1) 
from user_col_comments
where table_name = upper('xs_rxb');
 
 
扩充使用中的表空间的大小
 
Oracle字符集设置
客户端&服务端
 
Oracle中执行存储过程,遇见创建表时报错:权限不足(已经是dba权限),解决方法
grant create any table to mdbadmin;
oracle判断表是否存在
--判断表是否存在,如果存在则删除
declare 
      num   number; 
begin 
      select count(1) into num from all_tables where TABLE_NAME = 'EMP' and OWNER='SCOTT'; 
      if   num=1   then 
          execute immediate 'drop table EMP'; 
      end   if; 
end; 
/
 
两个库之间通过比较用户对象进行静态的统一
 
查看job的运行情况
select job, last_date, last_sec, next_date, next_sec,broken,failures,what from dba_jobs where log_user='MDBADMIN';
查看调度任务: select JOB, WHAT,interval  from dba_jobs  where log_user='MDBADMIN';
查看JOB QUEUE PROCESSES的数目 :select name ,value from v$parameter where name ='job_queue_processes';
 
oracle客户端不能正常安装,提示内存问题
net share c$=c:
Pl/sql显示乱码的解决方案
使用PLsql developer 时遇到中文存储,尤其是对表字段的注释是中文的时候经常会显示乱码。 查到如下的解决方法: 1.检查服务器编码: 执行SQL语法: select * from v$nls_parameters; 如果不是中文则执行2 2.设置本地客户端编码: 进入 我的电脑,属性,高级,环境变量,添加2项:LANG=zh_CN.GBK 和 NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK" 3. PL/SQL Developer设置并重新连接: 在pl/sql developer的菜单->tools->preferences->user interface->fonts 中修改为中文字体 OK了。
查看临时表空间和临时表空间状态
select tablespace_name, file_name, bytes/1024/1024 file_size, autoextensible from dba_temp_files;
select * from database_properties where property_name='DEFAULT_TEMP_TABLESPACE';
查看被锁进程的SQL
select s.sid,q.sql_text
from v$session s,v$sql q
where s.sql_id=q.sql_id
and s.sid in
(select session_id  from v$locked_object)
查看数据库正在执行的job
select * from DBA_JOBS_RUNNING
oracle垃圾数据清理
delete from cognos_chg_t  where rowid in (select rid from (select rowid rid , row_number() over (partition by chg_ref_num order by last_mod_dt desc) rn from cognos_chg_t ) where rn>1)
 
 
已使用 Microsoft OneNote 2010 创建
一个用于存放所有笔记和信息的位置

www.htsjk.Com true http://www.htsjk.com/oracle/21889.html NewsArticle 数据库迁移命令备忘 数据库迁移命令备忘 Name Value 查看表空间及位置 select a.tablespace_name ,b.file_name,a.block_size,a.block_size,b.bytes/1024/1024 Sum MB from dba_tablespaces a,dba_data_files b where a.tablespace_...
相关文章
    暂无相关文章
评论暂时关闭