数据库文件移位(一)

前言:需要把本地磁盘的所有数据文件,都移动到存储上去。
步骤概要:
1.shut immediate 停库
2.host cp dbfile   to new path
3.修改参数中controlfile的位置,把数据库启动到mount
4.rename相关文件
5.alter database open;
本次具体实施步骤:
一、查好需要移动的文件,以防漏掉。
SQL>
select name from v$datafile
union all
select name from v$controlfile
union all
select name from v$tempfile
union all
select member from v$logfile;

NAME
--------------------------------------------------
/oracle/oradata/test/system01.dbf
/oracle/oradata/test/undotbs01.dbf
/oracle/oradata/test/sysaux01.dbf
/oracle/oradata/test/users01.dbf
/oradata1/test01.dbf             <--------------注意该文件不在默认目录下。
/oracle/oradata/test/control01.ctl
/oracle/oradata/test/control02.ctl
/oracle/oradata/test/control03.ctl
/oracle/oradata/test/temp01.dbf
/oracle/oradata/test/redo03.log
/oracle/oradata/test/redo02.log
/oracle/oradata/test/redo01.log

12 rows selected.

SQL>
二、用语句生成rename语句。
datafile:
SQL> select 'alter database rename file '||chr(10)||chr(39)||name ||chr(39)||chr(10)||' to '''||replace(name,'/oracle/oradata/test','/oracle/oradata/u1/test') ||''';' aaa from v$datafile;

AAA
--------------------------------------------------------------------------------------------------------------
alter database rename file
'/oracle/oradata/test/system01.dbf'
 to '/oracle/oradata/u1/test/system01.dbf';

alter database rename file
'/oracle/oradata/test/undotbs01.dbf'
 to '/oracle/oradata/u1/test/undotbs01.dbf';

alter database rename file
'/oracle/oradata/test/sysaux01.dbf'
 to '/oracle/oradata/u1/test/sysaux01.dbf';

alter database rename file
'/oracle/oradata/test/users01.dbf'
 to '/oracle/oradata/u1/test/users01.dbf';

alter database rename file
'/oradata1/test01.dbf'
 to '/oracle/oradata/u1/test/test01.dbf';                <------------------------手动修改一下。


CONTROLFILE:
控制文件位置修改不需要通过rename,直接修改参数文件就行。




tempfile:
SQL> select 'alter database rename file '||chr(10)||chr(39)||name ||chr(39)||chr(10)||' to '''||replace(name,'/oracle/oradata/test','/oracle/oradata/u1/test') ||''';' aaa from v$tempfile;


AAA
--------------------------------------------------------------------------------------------------------------
alter database rename file
'/oracle/oradata/test/temp01.dbf'
 to '/oracle/oradata/u1/test/temp01.dbf';


redolog
SQL> select 'alter database rename file '||chr(10)||chr(39)||member ||chr(39)||chr(10)||' to '''||replace(member,'/oracle/oradata/test','/oracle/oradata/u1/test') ||''';' aaa from v$logfile

  2  ;

AAA
--------------------------------------------------------------------------------------------------------------
alter database rename file
'/oracle/oradata/test/redo03.log'
 to '/oracle/oradata/u1/test/redo03.log';

alter database rename file
'/oracle/oradata/test/redo02.log'
 to '/oracle/oradata/u1/test/redo02.log';

alter database rename file
'/oracle/oradata/test/redo01.log'
 to '/oracle/oradata/u1/test/redo01.log';

三、停库,拷贝文件
SQL>shut immediate;
SQL>!
cp /oracle/oradata/test/*    /oracle/oradata/u1/test/
cp  /oradata1/test01.dbf   /oracle/oradata/u1/test/

四、修改一下参数文件对controlfile的描述。

五、SQL>startup mount
         SQL>执行第二步生成的rename语句。
         SQL>alter database open;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个使用 Verilog HDL(硬件描述语言)编写的移位 RAM 的示例代码: ```verilog module ShiftRAM( input wire clk, input wire reset, input wire write, input wire [7:0] data_in, input wire shift, output reg [7:0] data_out ); reg [7:0] ram [15:0]; always @(posedge clk or posedge reset) begin if (reset) begin for (integer i = 0; i < 16; i = i + 1) begin ram[i] <= 8'b0; end end else if (write) begin for (integer i = 15; i > 0; i = i - 1) begin ram[i] <= ram[i - 1]; end ram[0] <= data_in; end else if (shift) begin for (integer i = 15; i > 0; i = i - 1) begin ram[i] <= ram[i - 1]; end end end always @(posedge clk) begin if (shift) begin data_out <= ram[15]; end else begin data_out <= ram[0]; end end endmodule ``` 这个移位 RAM 模块具有以下输入和输出: - `clk`:时钟信号,上升沿时进行读写操作。 - `reset`:复位信号,高电平时将 RAM 中的所有数据清零。 - `write`:写使能信号,高电平时将 `data_in` 的值写入 RAM 的第一个位置。 - `data_in`:待写入 RAM 的数据。 - `shift`:移位使能信号,高电平时 RAM 的数据向右移位。 - `data_out`:RAM 中的数据输出。 这个移位 RAM 的大小为 16 个字节(8 位),每次写入数据时,原有的数据向右移位,最后一个字节被丢弃,新的数据写入第一个字节的位置。当移位使能信号高电平时,RAM 中的数据整体向右移位,最后一个字节被丢弃,第一个字节的数据输出。 请注意,这仅仅是一个简单的示例代码,你可以根据自己的需求进行修改和扩展。在使用该代码时,请确保你已经了解 Verilog HDL 的基础知识,并正确设置测试环境以验证其功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值