数据库迁移命令备忘
数据库迁移命令备忘
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 创建
一个用于存放所有笔记和信息的位置
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。