随着主流硬盘容量的不断增大,越来越多的人喜欢在自己的“爱姬”上安装多个 *** 作系统。但在默认情况下,它们会创建并使用各自的临时文件夹,从而造成某种程度上的磁盘空间浪费。不过只要稍微动动脑筋,即可让多系统共享临时文件夹。方法如下:
先在一个空间较大,速度较快的分区上建立一个空文件夹,如在E盘建立一个Tmp文件夹,用于存放公共的临时文件。
1.在Windows
9X中设置
Windows
9X
默认临时文件夹的存放位置为
C:WindowsTemp(假设 *** 作系统装在C盘),不过,Windows
9X中的临时文件夹由TEMP和TMP
变量来定义。因此,可以编辑C:Autoexec.bat文件,添加以下内容:
@echo
off
set
temp=E:
mp
set
tmp=E:
mp
即可把临时文件夹重新定向为E:
mp目录。
2.在Windows
2000/XP中设置
在Windows
2000/XP中,临时文件却存放在C:Documents
and
Settings用户名Local
SettingsTemp文件夹下。
你可以右击桌面上“我的电脑”图标,选择“属性”命令,并在打开的“系统属性”窗口中切换到“高级”选项卡,接着点击“环境变量”按钮,
在d出的设置窗口中先选中TEMP,然后单击“编辑”按钮,在打开的“编辑用户变量”对话框中把原来的“%Local
SettingsTemp”改为“E:
mp”。接着,用同样的方法把其中的TMP变量也改为“E:
mp”。重新启动电脑即可生效。
经过上述设置后,多个Windows
系统即可共享临时文件夹来存放临时文件了。
二、自动删除临时文件
我们都知道,Windows
系统运行时会产生大量临时垃圾文件。尽管微软声称可以在机器关闭后自动删除它们,但事实上并非如此。日积月累,大多数用户电脑中的临时文件夹都会“藏”有少则几兆,多则几百兆的临时文件!不过可以通过下面的方法来自动清除它们。
1.Windows
9X
先将C:WindowsCommandDeltree.exe文件拷贝到C盘根目录下,接着编辑C:Autoexec.bat文件,在其中加入以下语句即可:
deltree
/y
C:windows
emp
md
C:windows
emp
2.Windows
2000/XP
同样先将C:WindowsCommandDeltree.exe文件拷贝到C
盘根目录下,然后在C盘根目录下新建一个名为CleanTmp.bat的批处理文件,在其中输入如下内容:
@echo
off
deltree
/y
temp
接着,把该批处理文件的快捷方式添加到“开始→程序→启动”菜单组里,这样每次系统开机时都会为我们清除临时文件夹。
三、临时文件统一管理
不仅Windows系统在使用过程中会产生大量临时文件,其他一些常用软件也会产生临时文件。默认情况下,它们的临时文件存放位置也不尽相同,但是通过下面的设置,可以将它们统一放置到一个文件夹中。
由于上面我们已经将不同 *** 作系统的临时文件放到一个统一的文件夹“E:
mp”下,现在进一步将常用软件的临时文件也放到该文件夹下。
1.WinRAR
启动WinRAR,按下快捷键Ctrl+S或者选择“选项→设置”,打开“设置”窗口,单击“路径”选项卡,在“临时文件解压的文件夹”后面输入“E:
mp”或者单击“浏览”按钮进行选择。
2.WinZip
运行WinZip
并点击菜单“选项→配置”,打开“配置”窗口,再单击“文件夹”选项卡,把“工作文件夹”和“临时文件夹”均设置为“E:
mp”即可。
3.Internet
Explorer
启动IE,选择“工具→Internet
选项”,在“常规”选项卡中单击“Internet
临时文件”下的“设置”按钮,然后在打开的窗口中点击“移动文件夹”按钮,接着在d出的对话框中定位“E:\tmp”文件夹。
补充:Windows2000/XP的“命令行模式”不再提供deltree.exe
你这个属于主、备机切换
1. 察看主库状态select switchover_status from v$database
收集主库上的临时表空间的情况,原因是备库激活后临时文件可能丢失,需要手工建上去:
col file_name format a40
select file_name,tablespace_name,bytes/1024/1024 from dba_temp_files
FILE_NAME TABLESPACE_NAME BYTES/1024/1024
---------------------------------------- -------------------- ---------------
/data/oradata/alihr/temp01.dbf TEMP 2048
2.切换主库到standby
alter database commit to switchover to physical standby
或:
ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN
shutdown immediate
startup nomount
alter database mount standby database
3.验证要被切换的standby是否接收到switch to 通知
SELECT SWITCHOVER_STATUS FROM V$DATABASE
以前的状态就是SESSIONS ACTIVE,现在就变为TO PRIMARY
4.切换物理standby到主用模式,检查redo log是否创建好
ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY
shutdown immediate
startup
5. standby数据库切换成主库后,检查是否需要、对临时表空间增加临时文件:
先检查临时文件是否丢失:
col file_name format a60
select file_name,tablespace_name from dba_temp_files
把结果前面原主库上的临时文件进行对比,如有丢失则使用如下命令增加:
alter tablespace temp add tempfile '/data/oradata/alihr/temp02.dbf' size 2048M reuse
正常情况下,如果db_file_name_convert参数设置正确的话,11g会自动建立temp file
6.在新的standby机器上
alter system set log_archive_dest_state_2='defer'
alter database recover managed standby database disconnect from session
7.检查主备库中fal参数
fal_server服务名是在standby机器的tnsnames中,指向主库,fal_client是在主库上的tnsnames中,指向standby。
fal参数只在standby机器上生效,所以在standby机器上fal_server指向主库,fal_client机器指向备库.
而主库上的fal参数虽然不生效,但为了避免主库切换成standby时,我们还要修改fal参数,所以现在就设置好,
让fal_server指向现在的standby数据库,fal_client指向自己。
8.在新的主库
alter system set log_archive_dest_state_2='enable'
alter system archive log current
然后到备库上检查备库机器上日志是否正常的传过来了。
9.检查和调整主备库两台机器中的crontab中的数据库备份脚本和删除归档脚本。
=================oracle11g的最大保护和最大可用模式下的切换==================
如果主库是意外宕机的,则直接把备库切换成主库:
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH
shutdown immediate
connect / as sysdba
startup mount
ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY
shutdown immediate
connect / as sysdba
startup mount
ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE AVAILABILITY
alter database open
注意:上面 *** 作中是手工的把数据库重新置成MAXIMIZE AVAILABILITY,否则数据库起来后是最大性能模式。
检查数据库的角色:
select database_role from v$database
原有主库启动后,如果不是硬盘坏,主库上的数据还存在,则把主库转换成standby就可以了:
主库上:
startup mount
recover automatic database
ALTER DATABASE CONVERT TO PHYSICAL STANDBY
shutdown immediate
注意千万不要把主库打开了,否则会导致主库的SCN发生变化,无法转换成standby数据库了。
在把原先的主库转化为standby时,有时可能报如下错误:
SQL> alter database recover managed standby database finish
alter database recover managed standby database finish
*
ERROR at line 1:
ORA-00283: recovery session canceled due to errors
ORA-19909: datafile 1 belongs to an orphan incarnation
ORA-01110: data file 1: '/opt/oracle/oradata/oratest/system01.dbf'
这里把到rman中:
list incarnation of database
reset database to incarnation 1
recover database
reset database to incarnation 2
=========================================================
failover在物理standby的切换
1.检查standby看是否使用了standby log
2.有standby log,执行下面的命令
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH
2.1 没有standby log则不执行上面的
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH SKIP STANDBY LOGFILE
3. 切换
ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY
3.1 如果上面3步骤失败,则
ALTER DATABASE ACTIVATE STANDBY DATABASE
4. 重启db
shutdown immediate
startup
switchover的方法:
主库和物理standby的切换
1.察看主库状态
SELECT SWITCHOVER_STATUS FROM V$DATABASE
2.切换
ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY
3.原主库
shutdown immediate
startup nomount
alter database mount standby database
4.验证要被切换的standby是否接收到switch to 通知
SELECT SWITCHOVER_STATUS FROM V$DATABASE
增加online redo日志
5.切换物理standby到主
ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY
shutdown immediate
startup
6.在新的standby机器(也就是老的主库)
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION
7.在新的主库
alter system archive log current
========active standby database===========
当:
alter database activate standby database
原来的主库只能通过闪回转化成standby database,但要求数据库的flashback打开。
在新主库上:
select to_char(standby_became_primary_scn) from v$database
在旧主库上:
SHUTDOWN IMMEDIATE
STARTUP MOUNT
FLASHBACK DATABASE TO SCN standby_became_primary_scn
ALTER DATABASE CONVERT TO PHYSICAL STANDBY
select max(sequence#) from v$log_history where RESETLOGS_TIME=(select max(RESETLOGS_TIME) from v$log_history)
实例恢复:
recover managed standby database disconnect using current logfile
=================lgwr设置====================================
alter system set log_archive_dest_3 = 'location=/disk3/arch/bopscha reopen=2 MAX_FAILURE=3'
alter system set log_archive_dest_state_3 = alternate
alter system set log_archive_dest_1 = 'location=/disk2/arch/bopscha alternate=log_archive_dest_3 reopen=60 MAX_FAILURE=5'
*.log_archive_dest_2='SERVICE=DTMRT LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=DTMRT'
alter database add standby logfile group 4 ('/oracle/u02/ORA10GDG/STANDBYRD01.LOG') size 200M
select group#,thread#,sequence#,archived,status from v$standby_log
alter database set standby database to maximize {availability | performance | protection}
select protection_mode from v$database
ORA-19527:
LOG_FILE_NAME_CONVERT='/u02/oracle/oradata/oract/','/u02/oracle/oradata/oract/'
alter system set log_archive_dest_2='SERVICE=bopsteststb lgwr sync affirm'
select frequency, duration from v$redo_dest_resp_histogram where dest_id=2 and frequency>1
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL
SQL> ALTER DATABASE OPEN
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT
alter database convert to snapshot standby
alter database convert to physical standby
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT
alter database commit to switchover to physical standby
alter database activate standby database finish apply
alter database recover managed standby database finish
旧主库转换成standby的步骤:
在新主库上:
select to_char(standby_became_primary_scn) from v$database
在旧主库上:
SHUTDOWN IMMEDIATE
STARTUP MOUNT
FLASHBACK DATABASE TO SCN standby_became_primary_scn
ALTER DATABASE CONVERT TO PHYSICAL STANDBY
ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH FORCE
一、每日23:00自动删除临时文件首先查看一下crontab的任务列表:
crontab
-l
然后新建:
crontab
-e
添加一行:
00
03
*
*
*
rm
-rf
/www/cmstest/my120/public/scripts/jpgraph/*
保存退出。
重启服务:
/etc/rc.d/init.d/crond
restart
二、每日24:00自动备份数据库
利用系统crontab来定时执行备份文件,按日期对备份结果进行保存,达到备份的目的。
1、创建保存备份文件的路径/mysqldata
#mkdir
/mysqldata
2、创建/usr/sbin/bakmysql文件
查找数据库库文件的路径:
一般都是:/var/lib/mysql,或者,/usr/local/mysql/var
查找方法:
1、/usr/local/mysql/bin/mysql
-u
root
-p
进入数据库
2、输入:show
databases
3、这是可以查看到所有的数据库,然后
4、find
/
-name
db(你想查找的数据库名)
之后:#vi
/usr/sbin/bakmysql
输入
复制代码
代码如下:
rq=`
date
+%Y%m%d
`
tar
zcvf
/mysqldata/mysql$rq.tar.gz
/var/lib/mysql
3、修改文件属性,使其可执行
#
chmod
+x
/usr/sbin/bakmysql
新建任务:
首先查看一下crontab的任务列表:
crontab
-l
然后新建:
crontab
-e
添加一行
00
04
*
*
*
/usr/sbin/bakmysql
表示每天24点钟执行备份
4、重新启动crond
#
/etc/rc.d/init.d/crond
restart
此后每天就可以在/mysqldata中看到类似下的文件了:mysql20040619.tar.gz。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)