关于作者

姓名:

性别:男

出生日期:1979-01-11

地区:安徽-芜湖

联系电话:

QQ:--

婚否:保密
用户名:songleon
笔名:芜湖人
地区: 安徽-芜湖
行业:其他

日历  

快速登录

+ 用户名:
+ 密 码:

快速通道

在线留言



最新评论

访问统计:
文章个数:17
评论个数:0
留言条数:1




Powered by BlogDriver 2.1

杳没孤鸿

 

落日绣帘卷, 亭下水连空。 知君为我新作, 窗户湿青红。 长记平山堂上, 欹枕江南烟雨, 杳杳没孤鸿。 认得醉翁语: “山色有无中。” 一千顷,都镜净, 倒碧峰。 忽然浪起, 掀舞一叶白头翁。 堪笑兰台公子, 未解庄生天籁, 刚道有雌雄。 一点浩然气, 千里快哉风。

文章

HP-UX基本指令快速参考
本人的平常工作的一点小积累,Share出来大家共享:) 各位如果有兴趣可以作成小册子,随身参考。

操作命令
1-1.处理目录
pwd: 显示当前工作目录&&
cd directory_path: 更改目录&&
cd: 更改为主目录&&
mkdir directory_name: 创建目录&&
rmdir directory_name: 删除空目录&& 

1-2.处理文件
elm: 阅读邮件&&
ls: 列举当前目录下的文件和目录&&
ls -a: 列举所有文件或目录包括隐藏点文件&
lsf: 列举文件并用/ 标记目录名&
compress filename: 压缩文件
uncompress filename: 解压缩文件
vi file_name: 创建或编辑文件
more file_name: 显示文件内容 (按q 退出)
head file_name: 显示文件的前10 行
tail file_name: 显示文件的后10 行
cp file_name file_copy: 复制文件
mv old_file new_file: 将文件重命名为新文件名
cat file1 >> file2: 将file1 附加到file2 的结尾处
rm file: 删除file&
rm -rf dir_name: 删除目录dir_name 及其所有文件
spell file_name: 在文件中检查拼写

1-3.打印
lp file_name: 打印文件
lpstat -t: 确定打印机的状态
cancel request_id: 取消打印请求

1-4.查找和组织
find .-name 'x*': 在当前目录和子目录中查找以x 开头的文件
grep word *: 在当前目录下的所有文件中查找word 一词的所有匹配
sort listfile: 按字母顺序对listfile 进行排序
date: 显示日期和时间
alias: 列举所有命令的别名
man command_name: 查找HP-UX 命令信息
echo $PATH: 确定PATH 设置
echo $SHELL: 确定所用的shell 

1-5.安全操作
passwd: 创建或更改口令
ll file_name: 显示文件的权限
ll -d directory_name: 显示目录的权限
chmod class=permissions name: 更改文件或目录权限
chown user name: 更改文件或目录的所有权

1-6.系统操作
clear: 清除屏幕
set -o editor_name: 设置命令行编辑器
TERM=term_type: 设置终端类型(从/usr/lib/terminfo 中选择term_type)&
ps -ef: 列举当前进程状态和PID&
kill PID: 终止进程
passwd: 创建或更改口令
command < infile: 将输入从文件重定向到命令
command1 | command2: 使用管道连接两个进程

- 作者: 芜湖人 2006年02月6日, 星期一 09:25  回复(0) |  引用(0) 加入博采

VI从入门到精通
VI从入门到精通
作者:未知 文章来源:来至 cu blog 点击数: 更新时间:2006-1-8
无论在什么系统上,文本编辑器也许都算得上是最普通和最有用的工具了。一个文本编辑器是一个创建、修改文本和数据对象的程序。他和字处理程序和桌面出版程序的区别是他只处理 plain ASCII 文本,没有格式信息。后者更倾向于处理复杂的文档。一个典型的字处理软件都有图形化的用户界面 (GUI)和 "what-you-see-is-what-you-get" 的效果。

文本编辑器的一般用途是处理简单的 ASCII 文本、源程序、e-mail等等。因此,他们都对相应的处理对象有一定的扩展。例如格式化相应的程序语言 (C++, Lisp, HTML 等)。

我们在这里将为您介绍 UNIX 世界中最常见的编辑器:vi 。您也会发现在这个世界上还有一种人狂热地喜欢 VI。

全屏幕编辑器 VS 行编辑器
全屏幕编辑器就是指用户工作的时候他可以在终端上看到他所处理的文件的全部或者部分。例如在一个25行的显示终端上,他可以看到文档中的24行。在编辑的时候,你并非在处理硬盘上的实际文件,而是你的文件的一个拷贝。这个拷贝一般叫做缓存。所有对文件的增加、修改、删除操作都是对缓存的操作,只有当你保存的时候,实际的文件才有改变。所以你一定听说过要经常保存你正处理的文件的建议。这个建议对于所有类似处理的程序都有用。

你可以想象屏幕是个在缓存中移动的视口。这个视口我们称为窗口。

相对而言,行编辑器则不会连续的显示你正处理的文件。他一次处理一行。因此他的界面很简单。自然而然,你会认为全屏幕编辑器的好处了。

但是,不要认为行编辑器简单的外表就一定缺乏强劲的处理能力。在行编辑器下,你能完成许多全屏幕编辑器很难完成的工作。

什么是 vi?
vi (一般,我们发音为 vee-eye ) 是一个几乎每个 UNIX 系统都具备的行编辑器。还有许多变种存在于许多其他的操作系统中。例如 Amiga、 Atari、Macintosh、MS-DOS、OS/2、Windows 3.1/95/NT。

vi 和 ex的关系
vi 和行编辑器 ex很相近。(实际上他们是一个程序!) vi 是可视化 (visual)的 ex。也就是说,你可以用 ex 开始编辑一个文件。任何时候,你都可以调用可视化的 ex。 在 vi 中,你随时可以到 ex 环境中。在后面的文章中可以看到例子。

为什么对 vi 感兴趣?
许多计算机用户对于 PC 机上的字处理软件很熟悉。如果你曾经用过这样的软件,也许你会对 vi 很失望。他不是一个 "what-you-see-is-what-you-get" 或 WYSIWYG 的字处理软件。然而,这样的字处理软件在典型的 UNIX 系统上是不多见的。vi 在几乎所有的 UNIX 系统下都有。

缺乏 GUI 也许对于初学者是个障碍,但是许多高级用户认为高效率的工具是命令行的用户界面。是的,当这些键盘命令成为你的本能的反应后,生产效率将远远超越其他的编辑器。实际上对命令行的用户界面的误解来自:人们总认为自己不可能记忆那么多命令。实际上,对于命令已经是手指的舞蹈而非记忆的功劳了。

进入和退出 vi
用一个新程序,首先你要知道的是如何进入和退出这个程序。最简单的进入 vi 的方式是输入程序的名字和你想编辑的文件的名字。如果你没有提供文件名,vi 将开一个空的屏幕,除了左边一列有些怪符号。下面就是你将看到的屏幕:

~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
Empty buffer

也许最下面的一行什么东西也没有——这取决于你使用什么版本的 UNIX 系统。在这里,他显示的是 "Empty buffer," 屏幕上弯弯曲曲的符号表明那行是空的,最下面的一行显示信息或者输入的命令。在后面的章节中我们将称呼他为命令行。

如果你输入了文件名,那么屏幕上将充满了你的文件。而文件名和行数将显示在最后一行。就象这样:

If wise, a commander is able to recognize changing circumstances and to
act expediently. If sincere, his men will have no doubt of the certainty of
rewards and punishments. If humane, he loves mankind, sympathizes with others,
and appreciates their industry and toil. If courageous, he gains victory by
seizing opportunity without hesitation. If strict, his troops are disciplined
because they are in awe of him and are afraid of punishment.
Shen Pao-hsu ... said: 'If a general is not courageous he will be unable
to conquer doubts or to create great plans.'
~
~
~
~
~
~
~
"art1" 8 lines, 576 characters

你应该知道的另外一件事是你该知道如何退出他。相对于你想如何对待你的缓冲,有几种办法可以达到目的。所有这些命令你必须在命令模式下输入(以后详细讲解)。为了确认你是在命令模式下,按下 ESC 直到你听到喇叭声。

输入命令 ZZ 将保存文件然后退出。另外的方式是在 ex 模式下的。为了进入 ex 模式,输入冒号,屏幕上最下面一行将显示冒号,光标在冒号右边闪烁,等待你的命令。

q 键将 "退出" 文件。不过前提是在你上次存盘后你没有修改文件。如果你对文件有过修改,你将不能退出,并得到下面的警告信息:No write since last change (use ! to override) 。命令 wq 可以帮你的忙,他保存文件然后退出。或者你就用 q! 来放弃你做的修改。

表 3.1 总结了迄今为止我们讲的命令。

表 3.1. 退出命令
Keystrokes Result
ZZ 保存文件,退出
:wq 保存文件,退出(和 ZZ 类似)
:q 退出。防止没有保存就退出。
:q! 退出。无论保存与否,都退出。

正式开始
vi 的模式
vi 是在很久以前就写的程序。在那个时候,键盘上没有现在熟悉的那么多功能键。所以,vi 设计成通过输入字符和 ESC 来控制输入和修改文本。

可能这对于一些人来说是个遗憾,但是你会发现你不需要改变手在键盘上的位置就可以完成所有的功能。结果是你的输入将快速起来。

为了完成交互的全屏幕编辑工作, vi 有三种模式。插入模式 (insert) 用于输入文本。在插入模式下,你输入的任何字符都将显示在屏幕并存于文件。命令 (command) 模式用于大多数编辑功能。在命令模式下,所有的输入都将产生一定的响应而不是直接到文本中,例如移动光标、删除一块文本、拷贝文本等。第三个模式是执行另外的功能,例如查找、全局替换、处理多个文件等。这种模式是基于 ex 编辑器的。

启动 vi
当 vi 启动后,默认的模式是命令模式。按照下面的步骤试一试:输入程序名称启动 vi :

$ vi

你将看到类似下面的东西:

~
~
~
~
~
~
~
Empty buffer

i--插入
现在我们输入 "i" 进入插入模式。字符 "i" 将不会回显。此后你输入的任何东西都将显示在缓存中。现在我们来输入一段文字。 例子中的话来自英文版的孙子兵法。注意光标的位置在例子中是个下划线。

If wise, a commander is able to recognize changing circumstances and to
act expediently. If sincere, his men will have no doubt of the certainty of
rewards and punishments. If humane, he loves mankind, sympathizes with others,
and appreciates their industry and toil. If courageous, he gains victory by
seizing opportunity without hesitation. If strict, his troops are disciplined
because they are in awe of him and are afraid of punishment.
Shen Pao-hsu ... said: 'If a general is not courageous he will be unable
to conquer doubts or to create great plans.'
~
~
~
~


Esc--Cancel
当你输入完了,按下 Esc 键返回到命令模式。 (如果你已经处于命令模式下,按 Esc 时会听到喇叭的声音。) Esc 可以撤消未完成的命令和终止插入模式。按 Esc 后,光标将停留在你最后输入的字符的下面。

很不幸,没有一个明显的标志表明你现在处于什么模式下。但是有简单的方法来告诉你现在你所处的模式。如果你按下键,相应的字符出现在屏幕上,那么你是在插入模式下,否则是命令模式下。如果你不能确定你现在所处的模式,那么按 Esc 两次以听到喇叭声来确信你在命令模式下。

移动光标和简单的编辑
是看一看基本的移动光标命令的时候了。训练训练你的手指,让他们以后自动的执行你所想的命令吧。

最重要的移动命令
让我们来看看有多少影响光标移动的命令。

hh--光标左移
首先,按 5 下 h 让光标左移动 5 个 (如果你看到 h 跑到屏幕上了的话,一定是你忘记了按 Esc )。光标现在应该在 "plans" 中的 "p" 下面 (看下面的例子):

If wise, a commander is able to recognize changing circumstances and to
act expediently. If sincere, his men will have no doubt of the certainty of
rewards and punishments. If humane, he loves mankind, sympathizes with others,
and appreciates their industry and toil. If courageous, he gains victory by
seizing opportunity without hesitation. If strict, his troops are disciplined
because they are in awe of him and are afraid of punishment.
Shen Pao-hsu ... said: 'If a general is not courageous he will be unable
to conquer doubts or to create great plans.'
~
~
~
~

kk--光标上移
现在我们来按 5 次 k 让光标上移 5 行。也许你该认为应该有快捷方式了。好,现在就有个简单的方法:在你要采取的行动前加上数字。按下 5k 你可以和按 5 下 k 有相同的结果了。光标现在该在 "he" 的"e"下了。

If wise, a commander is able to recognize changing circumstances and to
act expediently. If sincere, his men will have no doubt of the certainty of
rewards and punishments. If humane, he loves mankind, sympathizes with others,
and appreciates their industry and toil. If courageous, he gains victory by
seizing opportunity without hesitation. If strict, his troops are disciplined
because they are in awe of him and are afraid of punishment.
Shen Pao-hsu ... said: 'If a general is not courageous he will be unable
to conquer doubts or to create great plans.'
~
~
~

在使用这些功能的时候有些限制的。例如使用 h 或 l 移动光标超过了一行文字的头或尾,光标将停留在头或尾部,喇叭鸣叫提醒你。

还有其他的类似 h 和 k 的吗?看一看表3.2。最好的熟悉他们的的方法是多用他们。

表 3.2. 常见的方向键
命令 移动
h 左一个字符
j 下一行
k 上一行
l 右一个字符
w, W 前一个单词 (W 忽略标点)
b, B 后一个单词 (B 忽略标点)
$ 到行尾
^ 到行首第一个非空字符
0 行首
G 到缓冲首
nG 到第 n 行



大小写的命令是有一些区别的。小写字母一般以标点区分 "words.",而大写则忽略他们。

最重要的编辑程序
让我们看看最简单也是最常用的编辑过程:

修改 没有人不犯错误。所以迟早你会碰到修改你输入的文本的时候。实际上花在字处理上的大多数时间是修改而不是输入新的东西。因此,你要知道如何方便地修改就很重要。

x--删除一个字符 删除文字的最简单的方式是用 x。这个命令的结果是光标所处的字符的消失,后面的文字左移动。如果你删除的字符是一行最后的一个字符,那么光标将向左移动一个,这样光标就不会停留在不存在的字符的下面了。假如没有任何文字了,喇叭就叫。

d--删除对象 这个命令的右边还要有一定的文字对象。文字对象就是一块文字。他右边接的就是在控制光标移动的那些字符。例如 w 表示向前一个单词,那么 dw 将删除下一个单词。5w 表示前进 5 个单词,那么 d5w 将删除他们。

dd--删除一行 最常用的 d 系列命令之一。和前面一样, 5dd 将删除 5 行

D--整个删除 大写形式的 D 用来删除从光标到行尾。和 d$ 一样效果。

u--恢复 要后悔吗?他不仅仅撤消删除,还撤消你所有的编辑工作。

.--重复 重复编辑工作。








上文所述非常经典,不过只能算是入门。
这里提供一些高级命令:
1、配置VI
命令模式下
set autoindent(ai)自动缩进
set smartindent(si)自动缩进,如果你不进行C编程等,不必过问该选项
set number(nu)顾名思义,显示行号
set rule(ru)显示行列,就象tc2.0或VC里一样
以上几个是最常用的,除此以外还有大量不太常用的选项可由
set all列出(够你看的了,100多项吧)
PS:如此使你的设置永久生效:
在UNIX类操作系统(linux etc)的用户目录下,生成
.vimrc或.exrc(点号不是笔误),然后把上述命令打进去,对相当于DOS下配置文件的概念。
2、引人注意的小技巧:
A、倒序排列所有行
:1,$m0(PS 倒序排列指定行如1-10行呢?)
B、将指定范围的所有小写字母转换为大字
方法一:shift+~(数字1左边的邻居)
方法二::m,n ! tr a-z A-Z
方法三::m,n s/(.)/u1/g (是数字1)
C、删除所有空行
:g/^$/d
D、在所有行尾加上字符串如asdf
:1,$s/$/asdf/(在所有行首加上指定字符串呢)
E、不离开VI打开另一个文件
:e filename
F、用VI编辑多个文档
vi *.c
在这些文档中切换
:n(看一看set autowrite功能)
G、g与v
g表示寻找匹配的行,然后执行某种操作,如打印显示,删除、拷贝
v表示反向的匹配,然后执行如上的某种操作。

- 作者: 芜湖人 2006年01月23日, 星期一 10:22  回复(0) |  引用(0) 加入博采

Sense of love
  真爱无罪
  错的是世俗
  有情,又何必在乎什么。。。

- 作者: 芜湖人 2005年11月17日, 星期四 14:21  回复(0) |  引用(0) 加入博采

useful
数据字典dict总是属于Oracle用户sys的。
  1、用户:
   select username from dba_users;
  改口令
   alter user spgroup identified by spgtest;
  2、表空间:
   select * from dba_data_files;
   select * from dba_tablespaces;//表空间

   select tablespace_name,sum(bytes), sum(blocks)
    from dba_free_space group by tablespace_name;//空闲表空间

   select * from dba_data_files
    where tablespace_name='RBS';//表空间对应的数据文件

   select * from dba_segments
    where tablespace_name='INDEXS';
  3、数据库对象:
   select * from dba_objects;
   CLUSTER、DATABASE LINK、FUNCTION、INDEX、LIBRARY、PACKAGE、PACKAGE BODY、
   PROCEDURE、SEQUENCE、SYNONYM、TABLE、TRIGGER、TYPE、UNDEFINED、VIEW。
  4、表:
   select * from dba_tables;
   analyze my_table compute statistics;->dba_tables后6列
   select extent_id,bytes from dba_extents
   where segment_name='CUSTOMERS' and segment_type='TABLE'
   order by extent_id;//表使用的extent的信息。segment_type='ROLLBACK'查看回滚段的空间分配信息
   列信息:
    select distinct table_name
    from user_tab_columns
    where column_name='SO_TYPE_ID';
  5、索引: 
   select * from dba_indexes;//索引,包括主键索引
   select * from dba_ind_columns;//索引列
   select i.index_name,i.uniqueness,c.column_name
    from user_indexes i,user_ind_columns c
     where i.index_name=c.index_name
     and i.table_name ='ACC_NBR';//联接使用
  6、序列:
   select * from dba_sequences;
  7、视图:
   select * from dba_views;
   select * from all_views;
  text 可用于查询视图生成的脚本
  8、聚簇:
   select * from dba_clusters;
  9、快照:
   select * from dba_snapshots;
  快照、分区应存在相应的表空间。
  10、同义词:
   select * from dba_synonyms
    where table_owner='SPGROUP';
    //if owner is PUBLIC,then the synonyms is a public synonym.
     if owner is one of users,then the synonyms is a private synonym.
  11、数据库链:
   select * from dba_db_links;
  在spbase下建数据库链
   create database link dbl_spnew
   connect to spnew identified by spnew using 'jhhx';
   insert into acc_nbr@dbl_spnew
   select * from acc_nbr where nxx_nbr='237' and line_nbr='8888';
  12、触发器:
   select * from dba_trigers;
  存储过程,函数从dba_objects查找。
  其文本:select text from user_source where name='BOOK_SP_EXAMPLE';
  建立出错:select * from user_errors;
  oracle总是将存储过程,函数等软件放在SYSTEM表空间。
  13、约束:
  (1)约束是和表关联的,可在create table或alter table table_name add/drop/modify来建立、修改、删除约束。
  可以临时禁止约束,如:
   alter table book_example
   disable constraint book_example_1;
   alter table book_example
   enable constraint book_example_1;
  (2)主键和外键被称为表约束,而not null和unique之类的约束被称为列约束。通常将主键和外键作为单独的命名约束放在字段列表下面,而列约束可放在列定义的同一行,这样更具有可读性。
  (3)列约束可从表定义看出,即describe;表约束即主键和外键,可从dba_constraints和dba_cons_columns 查。
   select * from user_constraints
   where table_name='BOOK_EXAMPLE';
   select owner,CONSTRAINT_NAME,TABLE_NAME
    from user_constraints
    where constraint_type='R'
    order by table_name;
  (4)定义约束可以无名(系统自动生成约束名)和自己定义约束名(特别是主键、外键)
  如:create table book_example
    (identifier number not null);
    create table book_example
    (identifier number constranit book_example_1 not null);
  14、回滚段:
  在所有的修改结果存入磁盘前,回滚段中保持恢复该事务所需的全部信息,必须以数据库发生的事务来相应确定其大小(DML语句才可回滚,create,drop,truncate等DDL不能回滚)。
  回滚段数量=并发事务/4,但不能超过50;使每个回滚段大小足够处理一个完整的事务;
   create rollback segment r05
   tablespace rbs;
   create rollback segment rbs_cvt
   tablespace rbs
   storage(initial 1M next 500k);
  使回滚段在线
   alter rollback segment r04 online;
  用dba_extents,v$rollback_segs监测回滚段的大小和动态增长。
  回滚段的区间信息
   select * from dba_extents
   where segment_type='ROLLBACK' and segment_name='RB1';
  回滚段的段信息,其中bytes显示目前回滚段的字节数
   select * from dba_segments
    where segment_type='ROLLBACK' and segment_name='RB1';
  为事物指定回归段
   set transaction use rollback segment rbs_cvt
  针对bytes可以使用回滚段回缩。
   alter rollback segment rbs_cvt shrink;
   select bytes,extents,max_extents from dba_segments
    where segment_type='ROLLBACK' and segment_name='RBS_CVT';
  回滚段的当前状态信息:
   select * from dba_rollback_segs
    where segment_name='RB1';
  比多回滚段状态status,回滚段所属实例instance_num
  查优化值optimal
   select n.name,s.optsize
    from v$rollname n,v$rollstat s
     where n.usn=s.usn;
  回滚段中的数据
   set transaction use rollback segment rb1;/*回滚段名*/
   select n.name,s.writes
    from v$rollname n,v$rollstat s
     where n.usn=s.usn;
  当事务处理完毕,再次查询$rollstat,比较writes(回滚段条目字节数)差值,可确定事务的大小。
  查询回滚段中的事务
   column rr heading 'RB Segment' format a18
   column us heading 'Username' format a15
   column os heading 'Os User' format a10
   column te heading 'Terminal' format a10
   select r.name rr,nvl(s.username,'no transaction') us,s.osuser os,s.terminal te
    from v$lock l,v$session s,v$rollname r
     where l.sid=s.sid(+)
     and trunc(l.id1/65536)=R.USN
     and l.type='TX'
     and l.lmode=6
   order by r.name;
  15、作业
  查询作业信息
   select job,broken,next_date,interval,what from user_jobs;
   select job,broken,next_date,interval,what from dba_jobs;
  查询正在运行的作业
   select * from dba_jobs_running;
  使用包exec dbms_job.submit(:v_num,'a;',sysdate,'sysdate + (10/(24*60*60))')加入作业。间隔10秒钟
exec dbms_job.submit(:v_num,'a;',sysdate,'sysdate + (11/(24*60))')加入作业。间隔11分钟使用包exec dbms_job.remove(21)删除21号作业。

- 作者: 芜湖人 2005年11月10日, 星期四 17:02  回复(0) |  引用(0) 加入博采

进化
人类进化到二十一世纪,长长的尾巴早已消失,浓密的体毛也越来越少。只是眼神慢慢黯淡、心肠渐渐冰冷。还有一个很显著的特征是脸皮越来越厚。

- 作者: 芜湖人 2005年11月10日, 星期四 16:07  回复(0) |  引用(0) 加入博采

Conference Call
Tonight I will have a conference call wih American on business. It is also a challenge of my oral english i think:). Maybe firstly I should list the issues we are going to discuss tonight. Afer that , preparation for the conference will be needed. we shall clarify all of the problems we have met. The most important thing is that I will preside the meeing.hoho~~~

- 作者: 芜湖人 2005年11月4日, 星期五 11:08  回复(0) |  引用(0) 加入博采

Time passed quickly
These days I felt time passed so quickly. Every day get up,go to work,go back home......When I go back home it is always 7 or 8 o'clock. I do only have 2 or 3 hours for my private space. Maybe this is life, so common...Who can change these? I ever heard this sentence, things always change people,peaple can not always change things.Maybe it is hard for common people to change things and their lives. However, some of them became supernatural who is between everyman and God. They know what powered the world ,and have tried their best obtain the power and control it .So they succeed.

- 作者: 芜湖人 2005年11月3日, 星期四 13:46  回复(0) |  引用(0) 加入博采

exp和imp用法和介绍 [转]
1、Export/Import的用处   
Oracle Export/Import工具用于在数据库之间传递数据。   
Export从数据库中导出数据到dump文件中   
Import从dump文件中到入数据导数据库中   
下面是一般使用他们的情况   
(1)、两个数据库之间传送数据   
        同一个版本的oracle Server之间   
        不同版本的oracle Server之间   
        同种OS之间   
        不同种OS之间   
(2)、用于数据库的备份和恢复   
(3)、从一个SCHEMA传送到另一个SCHEMA   
(4)、从一个TABLESPACE传送到另一个TABLESPACE   
  
2、DUMP文件   
EXPORT到出的是二进制格式的文件,不可以手工编辑,否则会损坏数据。   
该文件在ORACLE支持的任何平台上都是一样的格式,可以在各平台上通用。   
  
DUMP文件在IMPORT时采用向上兼容方式,就是说ORALCE7的DUMP文件可以导入   
到ORACLE8中,但是版本相差很大的版本之间可能有问题。   
  
3、EXPORT/IMPORT过程   
EXPORT导出的DUMP文件包含两种基本类型的数据   
     - DDL (Data Dictionary Language)   
     - Data   
DUMP文件包含所有重新创建Data Dictionary的DDL语句,基本上是可以读的格式  
。   
但是应该注意的是,千万不要用文本编辑器编辑之,oracle说不支持这样做的。  
  
下面列出的是DUMP文件中包括的ORACLE对象,分为TABLE/USER/FULL方式,有些对  
象   
只是在FULL方式下才有(比如public synonyms, users, roles, rollback segm  
ents等)   
  
Table mode              User Mode               Full Database Mode   
----------------------  ----------------------  ----------------------  
---   
Table definitions       Table definitions       Table definitions   
Table data              Table data              Table data   
Owner's table grants    Owner's grants          Grants   
Owner's table indexes   Owner's indexes         Indexes   
Table constraints       Table constraints       Table constraints   
Table triggers          Table triggers          All triggers   
                         Clusters                Clusters   
                         Database links          Database links   
                         Job queues              Job queues   
                         Refresh groups          Refresh groups   
                         Sequences               Sequences   
                         Snapshots               Snapshots   
                         Snapshot logs           Snapshot logs   
                         Stored procedures       Stored procedures   
                         Private synonyms        All synonyms   
                         Views                   Views   
                                                 Profiles   
                                                 Replication catalog   
                                                 Resource cost   
                                                 Roles   
                                                 Rollback segments   
                                                 System audit options   
                                                 System privileges   
                                                 Tablespace definitions  
  
                                                 Tablespace quotas   
                                                 User definitions   
  
4、IMPORT时的对象倒入顺序   
在倒入数据时,ORACLE有一个特定的顺序,可能随数据库版本不同而有所变化,  
但是   
现在是这样的。   
  
  1. Tablespaces                         14. Snapshot Logs   
  2. Profiles                            15. Job Queues   
  3. Users                               16. Refresh Groups   
  4. Roles                               17. Cluster Definitions   
  5. System Privilege Grants             18. Tables (also grants,commen  
ts,    
  6. Role Grants                             indexes, constraints, audi  
ting)   
  7. Default Roles                       19. Referential Integrity       
                 
  8. Tablespace Quotas                   20.  POSTTABLES actions         
                      
  9. Resource Costs                      21. Synonyms   
10. Rollback Segments         22. Views             
11. Database Links                      23. Stored Procedures   
12. Sequences                           24. Triggers, Defaults and Aud  
iting   
13. Snapshots                        
                              
按这个顺序主要是解决对象之间依赖关系可能产生的问题。TRIGGER最后导入,所  
以在INSERT   
数据到数据库时不会激发TRIGGER。在导入后可能会有一些状态是INVALID的PROC  
EDURE,主要   
是IMPORT时会影响一些数据库对象,而IMPORT并不重新编译PROCEDURE,从而造成  
这种情况,   
可以重新编译之,就能解决这个问题。   
  
5、兼容性问题   
IMPORT工具可以处理EXPORT 5.1.22之后的版本导出的DUMP文件,所以你用ORACL  
E7的IMPORT   
处理ORACLE6的DUMP文件,依次类推,但是ORACLE如果版本相差很大有可能不能处  
理。具体的   
问题可以参照相应的文档,比如有关参数设置等(COMPATIBLE参数)   
  
6、EXPORT需要的VIEW   
EXPORT需要的VIEW是由CATEXP.SQL创建,这些内部VIEW用于EXPORT组织DUMP文件  
中数据格式。   
大部分VIEW用于收集创建DDL语句的,其他的主要供ORACLE开发人员用。   
  
这些VIEW在不同ORACLE版本之间有可能不同,每个版本可能都有新的特性加入。  
所以在新的   
版本里面执行旧的dump文件会有错误,一般可以执行CATEXP.SQL解决这些问题,  
解决向后兼容   
问题的一般步骤如下:   
      
   导出数据库的版本比目标数据库老的情况:   
   - 在需要导入的目标数据库中执行旧的CATEXP.SQL   
   - 使用旧的EXPORT导出DUMP文件    
   - 使用旧的IMPORT导入到数据库中   
   - 在数据库中执行新的CATEXP.SQL,以恢复该版本的EXPORT VIEW   
  
   导出数据库的版本比目标数据库新的情况:   
   - 在需要导入的目标数据库中执行新的CATEXP.SQL   
   - 使用新的EXPORT导出DUMP文件    
   - 使用新的IMPORT导入到数据库中   
   - 在数据库中执行旧的CATEXP.SQL,以恢复该版本的EXPORT VIEW   
      
7、碎片整理   
EXPORT/IMPORT一个很重要的应用方面就是整理碎片。因为如果时初次IMPPORT,  
  
就会重新CREATE TABLE 再导入数据,所以整张表都是连续存放的。另外缺省情况  
  
下EXPORT会在生成DUMP文件是“压缩(COMPRESS)”TABLE,但是这种压缩在很多情  
  
况下被误解。事实上,COMPRESS是改变STORAGE参数INITIAL的值。比如:   
  
   CREATE TABLE .... STORAGE( INITIAL 10K NEXT 10K..)   
   现在数据已经扩展到100个EXTENT,如果采用COMPRESS=Y来EXPORT数据,   
   则产生的语句时 STORAGE( INITIAL 1000K NEXT 10K)   
  
   我们可以看到NEXT值并没有改变,而INITIAL是所有EXTENT的总和。所以会出现  
  
如下情况,表A有4个100M的EXTENT,执行DELETE FROM A,然后再用COMPRESS=Y 导  
  
出数据,产生的CREATE TABLE语句将有400M的INITIAL EXTENT。即使这是TABLE中  
  
已经没有数据!!这是的DUMP文件即使很小,但是在IMPORT时就会产生一个巨大  
的   
TABLE.   
  
   另外,也可能会超过DATAFILE的大小。比如,有4个50M的数据文件,其中表A有  
  
15个10M的EXTENT,如果采用COMPRESS=Y的方式导出数据,将会有INITIAL=150M,  
  
那么在重新导入时,不能分配一个150M的EXTENT,因为单个EXTENT不能跨多个文  
件。   
  
8、在USER和TABLESPACE之间传送数据   
一般情况下EXPORT的数据要恢复到它原来的地方去。如果SCOTT用户的表以TABLE  
  
或USER方式EXPORT数据,在IMPORT时,如果SCOTT用户不存在,则会报错!   
  
以FULL方式导出的数据带有CREATE USER的信息,所以会自己创建USER来存放数据  
。   
  
当然可以在IMPORT时使用FROMUSER和TOUSER参数来确定要导入的USER,但是要保  
证   
TOUSER一定已经存在啦。   
  
9、EXPORT/IMPORT对SQUENCE的影响   
在两种情况下,EXPORT/IMPORT会对SEQUENCE。   
(1)如果在EXPORT时,用户正在取SEQUENCE的值,可能造成SEQUENCE的不一致。  
  
(2)另外如果SEQUENCE使用CACHE,在EXPORT时,那些在CACHE中的值就会被忽略  
的,   
      只是从数据字典里面取当前值EXPORT。   
  
如果在进行FULL方式的EXPORT/IMPORT时,恰好在用sequence更新表中某列数据,  
  
而且不是上面两种情况,则导出的是更新前的数据。   
  
如果采用常规路径方式,每一行数据都是用INSERT语句,一致性检查和INSERT T  
RIGGER   
如果采用DIRECT方式,某些约束和trigger可能不触发,如果在trigger中使用   
sequence.nextval,将会对sequence有影响。   
  
参数解:   
  
E:\>exp help=y  
  
通过输入 EXP 命令和用户名/口令,您可以  
在用户 / 口令之后的命令:  
  
实例: EXP SCOTT/TIGER  
  
或者,您也可以通过输入跟有各种参数的 EXP 命令来控制“导出”的运行方式。  
要指定参数,您可以使用关键字:  
  
格式: EXP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)  
实例: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)  
或 TABLES=(T1: P1,T1: P2),如果 T1 是分区表  
  
USERID 必须是命令行中的第一个参数。  
  
关键字 说明(默认)  
---------------------------------------------------  
USERID 用户名/口令  
FULL 导出整个文件 (N)  
BUFFER 数据缓冲区的大小  
OWNER 所有者用户名列表  
FILE 输出文件 (EXPDAT.DMP)  
TABLES 表名列表  
COMPRESS 导入一个范围 (Y)  
RECORDLENGTH IO 记录的长度  
GRANTS 导出权限 (Y)  
INCTYPE 增量导出类型  
INDEXES 导出索引 (Y)  
RECORD 跟踪增量导出 (Y)  
ROWS 导出数据行 (Y)  
PARFILE 参数文件名  
CONSTRAINTS 导出限制 (Y)  
CONSISTENT 交叉表一致性  
LOG 屏幕输出的日志文件  
STATISTICS 分析对象 (ESTIMATE)  
DIRECT 直接路径 (N)  
TRIGGERS 导出触发器 (Y)  
FEEDBACK 显示每 x 行 (0) 的进度  
FILESIZE 各转储文件的最大尺寸  
QUERY 选定导出表子集的子句  
  
下列关键字仅用于可传输的表空间  
TRANSPORT_TABLESPACE 导出可传输的表空间元数据 (N)  
TABLESPACES 将传输的表空间列表  
  
E:\>imp help=y  
  
可以通过输入 IMP 命令和您的用户名/口令  
跟有您的用户名 / 口令的命令:  
  
实例: IMP SCOTT/TIGER  
  
或者, 可以通过输入 IMP 命令和各种自变量来控制“导入”按照不同参数。  
要指定参数,您可以使用关键字:  
  
格式: IMP KEYWORD=value 或 KEYWORD=(value1,value2,...,vlaueN)  
实例: IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT) FULL=N  
或 TABLES=(T1: P1,T1: P2),如果 T1 是分区表  
  
USERID 必须是命令行中的第一个参数。  
  
关键字 说明(默认)     
----------------------------------------------  
USERID 用户名/口令  
FULL 导入整个文件 (N)  
BUFFER 数据缓冲区大小  
FROMUSER 所有人用户名列表  
FILE 输入文件 (EXPDAT.DMP)  
TOUSER 用户名列表  
SHOW 只列出文件内容 (N)  
TABLES 表名列表  
IGNORE 忽略创建错误 (N)  
RECORDLENGTH IO 记录的长度  
GRANTS 导入权限 (Y)  
INCTYPE 增量导入类型  
INDEXES 导入索引 (Y)  
COMMIT 提交数组插入 (N)  
ROWS 导入数据行 (Y)  
PARFILE 参数文件名  
LOG 屏幕输出的日志文件  
CONSTRAINTS 导入限制 (Y)  
DESTROY 覆盖表空间数据文件 (N)  
INDEXFILE 将表/索引信息写入指定的文件  
SKIP_UNUSABLE_INDEXES 跳过不可用索引的维护 (N)  
ANALYZE 执行转储文件中的 ANALYZE 语句 (Y)  
FEEDBACK 显示每 x 行 (0) 的进度  
TOID_NOVALIDATE 跳过指定类型 id 的校验  
FILESIZE 各转储文件的最大尺寸  
RECALCULATE_STATISTICS 重新计算统计值 (N)  
  
下列关键字仅用于可传输的表空间  
TRANSPORT_TABLESPACE 导入可传输的表空间元数据 (N)  
TABLESPACES 将要传输到数据库的表空间  
DATAFILES 将要传输到数据库的数据文件  
TTS_OWNERS 拥有可传输表空间集中数据的用户 

- 作者: 芜湖人 2005年10月28日, 星期五 14:06  回复(0) |  引用(0) 加入博采

在ORACLE中移动数据库文件 大全 [转]
在ORACLE中移动数据库文件 

--ORACLE数据库由数据文件,控制文件和联机日志文件三种文件组成。
--由于磁盘空间的变化,或者基于数据库磁盘I/O性能的调整等,
--我們可能会考虑移动数据库文件。
--下面以LUNIX平台为例,分别讨论三种数据库文件的移动方法。 

一.移动数据文件: 
-- 可以用ALTER DATABASE,ALTER TABLESPACE两种方法移动数据文件。 

1. ALTER DATABASE方法;
-- 用此方法,可以移动任何表空间的数据文件。 

STEP 1. 下数据库: 
 sqlplus /nolog
SQL> CONNECT INTERNAL;
SQL> SHUTDOWN;
SQL> EXIT; 

STEP 2.用操作系统命令移动数据文件: 
-- 将数据文件 'test.ora' 从/ora/oracle/data1目录移动到/ora/oracle/data2目录下: 
 mv /ora/oracle/data1/test.ora /ora/oracle/data2 

STEP 3. Mount数据库,用ALTER DATABASE命令将数据文件改名: 
 sqlplus /nolog 
SQL> CONNECT INTERNAL;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE RENAME FILE '/ora/oracle/data1/test.ora' TO '/ora/oracle/data2/test.ora'; 

STEP 4. 打开数据库:. 
SQL> ALTER DATABASE OPEN; 
SQL>SELECT NAME,STATUS FROM VDATAFILE;

2. ALTER TABLESPACE方法: 
-- 用此方法,要求此数据文件既不属于SYSTEM表空间,也不属于含有ACTIVE回滚段或临时段的表空间。 

STEP1. 将此数据文件所在的表空间OFFLINE: 
 sqlplus /nolog
SQL> CONNECT INTERNAL;
SQL> ALTER TABLESPACE test OFFLINE;
SQL> EXIT; 

STEP2. 用操作系统命令移动数据文件: 
将数据文件 'test.ora' 从/ora/oracle/
data1目录移动到/ora/oracle/data2目录下:
 mv /ora/oracle/data1/test.ora /ora/oracle/data2 

STEP3. 用ALTER TABLESPACE命令改数据文件名:
 sqlplus /nolog
SQL> CONNECT INTERNAL;
SQL> ALTER TABLESPACE test RENAME DATAFILE '/ora/oracle/data1/test.ora' TO '/ora/oracle/data2/test.ora'; 

STEP4. 将此数据文件所在的表空间ONLINE:
SQL> ALTER TABLESPACE test ONLINE; 
SQL> SELECT NAME,STATUS FROM VDATAFILE;

二. 移动控制文件: 

-- 控制文件 在 INIT.ORA文件中指定。移动控制文件相对比较简单,下数据库,
-- 编辑INIT.ORA,移动控制文件,重启动数据库。 

STEP 1. 下数据库:
 sqlplus /nolog
SQL> CONNECT INTERNAL;
SQL> SHUTDOWN;
SQL> EXIT; 

STEP 2.用操作系统命令 移动控制文件:
--将控制文件'ctl3orcl.ora' 从/ora/oracle/data1目录移动到/ora/oracle/data2目录下:
 mv /ora/oracle/data1/ctrlorcl3.ora /ora/oracle/data2 

STEP 3. 编辑INIT.ORA文件:
INIT.ORA文件的在ORACLE_HOME/dbs目录下,
修改参数 "control_files",其中指定移动后的控制文件: 
control_files = (/ora/oracle/data1/ctrlorcl1.ora,/ora/oracle/data1/ctrlorcl2.ora,/ora/oracle/data2/ctrlorcl3.ora)

STEP 4. 重启动数据库: 
 sqlplus /nolog
SQL> CONNECT INTERNAL;
SQL> STARTUP;
SQL>SELECT name FROM VCONTROLFILE;
SQL> EXIT; 


三. 移动联机日志文件: 
STEP 1. 停数据库:
 sqlplus /nolog
SQL> CONNECT INTERNAL;
SQL> SHUTDOWN;
SQL> EXIT; 

STEP 2. 用操作系统命令移动联机日志文件:
--将联机日志文件'redolog1.ora' 从/ora/oracle/data1目录移动到/ora/oracle/data2目录下:
 mv /ora/oracle/data1/redolog1.ora /ora/oracle/data2 

STEP 3. Mount数据库,用ALTER DATABASE 命令改联机日志文件名:. 
 sqlplus /nolog
SQL> CONNECT INTERNAL;
SQL> STARTUP MOUNT ;
SQL> ALTER DATABASE RENAME FILE '/ora/oracle/data1/redolog1.ora' TO '/ora/oracle/data2/redolog1.ora'; 

STEP 4.重启动数据库: . 
SQL> ALTER DATABASE OPEN; 
SQL>SELECT MEMBER FROM VLOGFILE;

- 作者: 芜湖人 2005年10月28日, 星期五 14:04  回复(0) |  引用(0) 加入博采

RMAN 初学者指南 [转]
这篇文章是去年写的了,最初发表在chinaunix.net的oracle论坛里,收录在旧版文集中,可能很多没有看到,总有人写信要,今天乘改版之际就把它单独拿出来了。(gototop 2003.6.24注) 
  
RMAN(Recovery Manager)是DBA的一个重要工具,用于备份、还原和恢复oracle数据库,前一段时间有网友找我要,可惜没时间,趁这两天出差在外没什么事,就写了一下,供初学的朋友参考。本文将介绍RMAN 的基本操作,更多的信息请参考《Oracle8i Backup & Recovery Guide》及RMAN 手册,或者是OCP Student Guide M09096《Backup and Recovery Workshop》Volume 2,也可以通过 gototop@ncn.cn 和我联系。Oracle 自带的例子参考ORACLE_HOME/rdbms/demo 目录下的*.rcv脚本。 
  
一、RMAN 简介 
  
RMAN 可以用来备份和恢复数据库文件、归档日志和控制文件,也可以用来执行完全或不完全的数据库恢复。RMAN有三种不同的用户接口:COMMAND LINE方式、GUI 方式(集成在OEM 中的备份管理器)、API 方式(用于集成到第三方的备份软件中)。具有如下特点: 
1)功能类似物理备份,但比物理备份强大N倍,从下面的特点可以看到; 
2)可以压缩空块; 
3)可以在块水平上实现增量; 
4)可以把备份的输出打包成备份集,也可以按固定大小分割备份集; 
5)备份与恢复的过程可以自动管理; 
6)可以使用脚本(存在Recovery catalog 中) 
7)可以做坏块监测 
  
二、相关术语解释 
1)Backup sets 备份集 
备份集顾名思义就是一次备份的集合,它包含本次备份的所有备份片,以oracle专有的格式保存。一个备份集根据备份的类型不同,可能构成一个完全备份或增量备份。 
2)Backup pieces 备份片 
一个备份集由若干个备份片组成。每个备份片是一个单独的输出文件。一个备份片的大小是有限制的;如果没有大小的限制, 备份集就只由一个备份片构成。备份片的大小不能大于你的文件系统所支持的文件长度的最大值。 
3)Image copies 映像备份 
映像备份不压缩、不打包、直接COPY 独立文件(数据文件、归档日志、控制文件),类似操作系统级的文件备份。而且只能COPY 到磁盘,不能到磁带。可以作为增量备份的0级,一般用来备份控制文件。 
4)Full backup 全备份 
全备份是指对数据文件中使用过的数据块进行备份,没有使用过的数据块是不做备份的,也就是说,RMAN 进行备份是进行压缩的。 
5)Incremental backup 增量备份 
增量备份是指备份数据文件中自从上一次同一级别的或更低级别的备份以来被修改过的数据块。与完全备份相同,增量备份也进行压缩。增量备份虽然概念很好,备份也很简单,但恢复起来却是另外一回事,不仅麻烦而且容易出错,所以实际中越来越少使用,到了Oracle 9i已经建议不再使用,以后版本会逐渐取消对增量备份的支持。 
6)Recovery catalog 恢复目录 
恢复目录用于记录RMAN 使用过程中的控制信息,恢复目录应该经常被同步(这在后面会讲到)。尽管我们可以使用nocatalog 方式来使用RMAN,此时控制信息记录在目标数据库的控制文件中,但这样毕竟不安全,因为一旦目标数据库的控制文件损坏就意味着所有的RMAN 备份失效。同样的道理恢复目录应该建立在另外一个数据库中,在下面的例子中我们称作“目录数据库”。 
  
三、创建恢复目录 
1、在目录数据库中创建恢复目录所用表空间 
SQL> create tablespace rmants datafile 'c:\oracle\oradata\cc\rmants.ora' size 20M ; 
表空间已创建。 
2、在目录数据库中创建RMAN 用户并授权 
SQL> create user rman identified by rman default tablespace rmants temporary tablespace temp quota 
unlimited on rmants; 
用户已创建 
SQL> grant recovery_catalog_owner to rman ; 
授权成功。 
3、在目录数据库中创建恢复目录 
C:\>rman catalog rman/rman 
恢复管理器:版本8.1.7.0.0 - Production 
RMAN-06008:连接到恢复目录数据库 
RMAN-06428:未安装恢复目录 
RMAN>create catalog tablespace rmants; 
RMAN-06431:恢复目录已创建 
4、注册目标数据库到恢复目录 
注意哦,这里我的目标数据库使用的服务名称是rman,意思为要使用RMAN 进行备份的数据库,而目录 
数据库使用的服务名称是CC。 
C:\>rman target sys/sys@rman 
恢复管理器:版本8.1.7.0.0 - Production 
RMAN-06005:连接到目标数据库:RMAN (DBID=1303772234) 
RMAN>connect catalog rman/rman@cc 
RMAN-06008:连接到恢复目录数据库 
RMAN>register database; 
RMAN-03022:正在编译命令:register 
RMAN-03023:正在执行命令:register 
RMAN-08006:注册在恢复目录中的数据库 
RMAN-03023:正在执行命令:full resync 
RMAN-08002:正在启动全部恢复目录的resync 
RMAN-08004:完成全部resync 
好了,到此为止前面的准备工作都做好了,下面就可以使用RMAN 来进行备份和恢复了。 
  
四、使用RMAN 
下面通过具体的例子来说明RMAN 的使用,这里会涉及到除了恢复以外的所有RMAN 操作,关于使用RMAN 进行恢复的内容请参考我以前写的另外一篇文章:RMAN 恢复实践。 
1、备份整个数据库 
RMAN>run { 
2> allocate channel c1 type disk; 
3> backup database format 'e:\dbbackup\2db.dmp'; 
4> } 
2、复制数据文件 
RMAN>run { 
2> allocate channel c1 type disk; 
3> copy datafile 'c:\oracle\oradata\rman\users01.dbf' to 'e:\dbbackup\u.dbf' tag 
=u1215; 
4> } 
3、查看备份及复制的信息 
RMAN>list backup; 
RMAN-03022:正在编译命令:list 
备份集列表 
关键字Recid 标记LV 集合标记集合计数完成时间 
------- ---------- ---------- -- ---------- ---------- ---------------------- 
216 1 417347013 0 417346992 1 26-12 月-00 
备份段列表 
关键字Pc# Cp# 状态完成时间段名 
------- --- --- ----------- ---------------------- ------------------------ 
217 1 1 AVAILABLE 26-12 月-00 E:\DBBACKUP\2DB.DMP 
数据文件包括列表 
文件名称LV 类型检查点SCN 检查点时间 
---- ------------------------------------- -- ---- ---------- ------------- 
1 C:\ORACLE\ORADATA\RMAN\SYSTEM01.DBF 0 Full 33224 26-12 月-00 
2 C:\ORACLE\ORADATA\RMAN\RBS01.DBF 0 Full 33224 26-12 月-00 
3 C:\ORACLE\ORADATA\RMAN\USERS01.DBF 0 Full 33224 26-12 月-00 
4 C:\ORACLE\ORADATA\RMAN\TEMP01.DBF 0 Full 33224 26-12 月-00 
5 C:\ORACLE\ORADATA\RMAN\TOOLS01.DBF 0 Full 33224 26-12 月-00 
6 C:\ORACLE\ORADATA\RMAN\INDX01.DBF 0 Full 33224 26-12 月-00 
RMAN>list copy of datafile 'c:\oracle\oradata\rman\users01.dbf'; 
RMAN-03022:正在编译命令:list 
数据文件备份列表 
关键字文件状态完成时间检查点SCN 检查点时间名称 
------- ---- - --------------- ---------- --------------- ------ 
226 3 A 26-12 月-00 33226 26-12 月-00 E:\DBBACKUP\U.DBF 
4、在备份是设置相关参数 
format --文件输出格式, 
%d--database name, 
%s--backup sets sequence number, 
%p--backup pieces sequence number 
filesperset --每个备份集中所包括的文件数 
更多参数请参考本文开始时列出的书。 
RMAN>run { 
2> allocate channel c1 type disk; 
3> set limit channel c1 kbytes 8000; 
4> backup 
5> format 'e:\dbbackup\db_%d_%s_%p.bck' 
6> (database filesperset=2 
7> } 
RMAN-03022:正在编译命令:allocate 
RMAN-03023:正在执行命令:allocate 
RMAN-08030:分配的通道:c1 
RMAN-08500:通道c1:sid=9 devtype=DISK 
RMAN-03022:正在编译命令:set limit 
RMAN-03023:正在执行命令:set limit 
RMAN-03022:正在编译命令:backup 
RMAN-03023:正在执行命令:backup 
RMAN-08008:通道c1:正在启动full 数据文件备份集 
RMAN-08502:set_count=6 set_stamp=417351064 creation_time=26-12 月-00 
RMAN-08010:通道c1:正在指定备份集中的数据文件 
RMAN-08522:输入数据文件fno=00003 name=C:\ORACLE\ORADATA\RMAN\USERS01.DBF 
RMAN-08522:输入数据文件fno=00005 name=C:\ORACLE\ORADATA\RMAN\TOOLS01.DBF 
RMAN-08013:通道c1:已创建1 段 
RMAN-08503:段handle=E:\DBBACKUP\DB_RMAN_6_1.BCK comment=NONE 
RMAN-08525:备份集完成,经过时间:00:00:03 
RMAN-08008:通道c1:正在启动full 数据文件备份集 
RMAN-08502:set_count=7 set_stamp=417351067 creation_time=26-12 月-00 
RMAN-08010:通道c1:正在指定备份集中的数据文件 
RMAN-08522:输入数据文件fno=00002 name=C:\ORACLE\ORADATA\RMAN\RBS01.DBF 
RMAN-08522:输入数据文件fno=00006 name=C:\ORACLE\ORADATA\RMAN\INDX01.DBF 
RMAN-08013:通道c1:已创建1 段 
RMAN-08503:段handle=E:\DBBACKUP\DB_RMAN_7_1.BCK comment=NONE 
RMAN-08525:备份集完成,经过时间:00:00:04 
RMAN-08008:通道c1:正在启动full 数据文件备份集 
RMAN-08502:set_count=8 set_stamp=417351071 creation_time=26-12 月-00 
RMAN-08010:通道c1:正在指定备份集中的数据文件 
RMAN-08522:输入数据文件fno=00001 name=C:\ORACLE\ORADATA\RMAN\SYSTEM01.DBF 
RMAN-08011:备份集中包括当前控制文件 
RMAN-08013:通道c1:已创建1 段 
RMAN-08503:段handle=E:\DBBACKUP\DB_RMAN_8_1.BCK comment=NONE 
RMAN-08013:通道c1:已创建2 段 
RMAN-08503:段handle=E:\DBBACKUP\DB_RMAN_8_2.BCK comment=NONE 
RMAN-08013:通道c1:已创建3 段 
RMAN-08503:段handle=E:\DBBACKUP\DB_RMAN_8_3.BCK comment=NONE 
RMAN-08013:通道c1:已创建4 段 
RMAN-08503:段handle=E:\DBBACKUP\DB_RMAN_8_4.BCK comment=NONE 
RMAN-08013:通道c1:已创建5 段 
RMAN-08503:段handle=E:\DBBACKUP\DB_RMAN_8_5.BCK comment=NONE 
RMAN-08013:通道c1:已创建6 段 
RMAN-08503:段handle=E:\DBBACKUP\DB_RMAN_8_6.BCK comment=NONE 
RMAN-08013:通道c1:已创建7 段 
RMAN-08503:段handle=E:\DBBACKUP\DB_RMAN_8_7.BCK comment=NONE 
RMAN-08525:备份集完成,经过时间:00:00:19 
.... .... 
RMAN-08008:通道c1:正在启动full 数据文件备份集 
RMAN-08502:set_count=9 set_stamp=417351090 creation_time=26-12 月-00 
RMAN-08010:通道c1:正在指定备份集中的数据文件 
RMAN-08522:输入数据文件fno=00004 name=C:\ORACLE\ORADATA\RMAN\TEMP01.DBF 
RMAN-08013:通道c1:已创建1 段 
RMAN-08503:段handle=E:\DBBACKUP\DB_RMAN_9_1.BCK comment=NONE 
RMAN-08525:备份集完成,经过时间:00:00:07 
RMAN-03023:正在执行命令:partial resync 
RMAN-08003:启动部分恢复目录的resync 
RMAN-08005:完成部分resync 
RMAN-08031:释放的通道:c1 
5、使用脚本功能 
使用脚本的目的在于方便我们操作中的方便,操作上和存储过程相似。 
RMAN>create script l0dbbackup { 
2> allocate channel c1 type disk; 
3> backup 
4> format 'e:\dbbackup\db_%d_%s_%p.bck' 
5> (database filesperset=2 
6> } 
RMAN-03022:正在编译命令:create script 
RMAN-03023:正在执行命令:create script 
RMAN-08085:已创建脚本l0dbbackup 
RMAN>run {execute script l0dbbackup; } 

- 作者: 芜湖人 2005年10月28日, 星期五 14:03  回复(0) |  引用(0) 加入博采