'/u01/app/oracle/oradata/orcl/temp2.dbf' size 10m reuse autoextend on maxsize 200m;
SQL>alter database default temporary tablespace temp2;
--将新的表空间设置为默认的临时表空间
SQL>drop tablespace temp including contents and datafiles;
--删除旧的表空间及其数据
SQL>ALTER TABLESPACE temp ADD TEMPFILE '/u01/app/oracle/oradata/orcl/temp2.dbf' SIZE 20M;
--给临时表空间添加文件
SYS>select * from database_properties
where property_name='DEFAILT_TEMP_TABLESPACE'; --查看当前数据库默认数据库
----------------------------------------------------------------------------------------------------------------
-
三、重建索引、丢失了索引表空间后进行恢复
重新创建索引
:
使用以下选项可缩短创建索引所花费的时间:
PARALLEL NOLOGGING
PARALLEL(NOPARALLEL 是默认值):多个进程可以同时协同工作来创建索引。与单个服务器进程按顺序创建索引相比,通过
在多个服务器进程之间分配创建索引所需的工作,Oracle 服务器可以更快速地创建索引。将随机对表取样并找到一组索引关键
字,这些索引关键字按照指定的并行度将索引平均分为相同数目的片段。第一组查询进程将扫描表,提取关键字、行 ID 对并基
于关键字将每个对发送到第二组查询进程中的一个进程中。第二组中的每个进程都对关键字进行排序并按常规方式构建索引。所
有索引片段构建完成后,并行协调程序会将这些片段(已进行排序)级联以形成最终的索引。
SQL> CREATE INDEX rname_idx
ON hr.regions (region_name)
PARALLEL 4;
NOLOGGING:使用此关键字会加快索引的创建速度,因为创建进程创建的重做日志 条目极少。这种工作量大幅减小的重做生
成也适用于直接路径插入和 Direct Loader (SQL*Loader) 插入。这是永久性属性,因此将显示在数据字典中。可以随时使用
ALTER INDEX NOLOGGING/LOGGING 命令来加以更新。
注:若数据库在nologging状态时,所操作的数据应该备份,再将nologging改回来,以免重大失误难以恢复
丢失了索引表空间后进行恢复:
索引丢失时,更为快速、简单的方法是重新创建而不是尝试恢复索引。
索引是计算得到的对象,因为它们不提供任何原始数据,只是已存在数据的另一表示形式。因此,在大多数情况下,可以很
容易地重新创建索引。
如果您的表空间仅包含索引,则可以简化在丢失了属于该表空间的数据文件后的恢复工作。
如果丢失了此类数据文件,则可以
执行以下步骤:
1.删除数据文件。
2.删除表空间。 3.重新创建索引表空间。
4.重新创建包含在表空间中的索引。
1.可以在不执行 RECOVER 任务的情况下恢复仅包含索引的表空间。
2.如果属于仅包含索引的表空间的数据文件丢失,则更为简单的方法可能是重新创建表空间和重新创建索引。
----------------------------------------------------------------------------------------------------------------
-
四、重新创建口令验证文件
1.密码文件丢失
cd $ORACLE_HOME/dbs --密码文件的位置
ls -lrt|grep orapw
rm orapw... --删除密码文件
2.登陆
SQL> CONNECT sys/admin AS SYSDBA
--登陆失败,未找到密码文件
3.另一种方式登录:
sqlplus / as sysdba
--os级别登陆
grant sysdba to hr;
--授权sysdba给hr,会报错;
SQL> grant sysdba to admin2;
grant sysdba to admin2
*
ERROR at line 1:
ORA-01994: GRANT failed: password file missing or disabled
4.创建密码文件
[oracle@ocum ~]$ orapwd
Usage: orapwd file=
where
file - name of password file (required),
password - password for SYS will be prompted if not specified at command line,
entries - maximum number of distinct DBA (optional),
force - whether to overwrite existing file (optional),
ignorecase - passwords are case-insensitive (optional),
nosysdba - whether to shut out the SYSDBA logon (optional Database Vault only).
There must be no spaces around the equal-to (=) character.
--使用口令实用程序 orapwd 创建口令文件。
orapwd file=filename password=password entries=max_users
其中:
--
filename 是口令文件的名称(必需)。
--
password 是 SYS 的口令(可选)。如果未包含 password 参数,则会收到提示,要求您输入口令。
--
Entries 是允许以 SYSDBA 或 SYSOPER 身份连接的不同用户的最大数量。如果超出了此数值,必须创建新口令文件。使用较
大的数值比较保险。
--“等号”(=) 字符两边没有空格。
--示例:$ orapwd file=$ORACLE_HOME/dbs/orapworcl password=oracle entries=5
5.验证密码文件是否可用
SQL> CONNECT sys/admin AS SYSDBA
SQL> grant sysdba to admin2;
面向数据库管理员的验证方法
根据是希望在数据库所在的那一台计算机上本地管理数据库,还是希望从一个远程客户机管理许多不同的数据库服务器,可以选
择使用操作系统验证或口令文件验证来验证数据库管理员:
如果数据库具有口令文件且您已经具有 SYSDBA 或 SYSOPER 系统权限,则可以通过口令文件进行验证。
如果服务器未使用口令文件,或者您不具有 SYSDBA 或 SYSOPER 权限因而不在口令文件中,则可以使用操作系统验证。在大多
数操作系统中,数据库管理员的验证需要将数据库管理员的操作系统用户名放置到一个特殊组中,一般称为 OSDBA。该组中的用
户将被授予 SYSDBA 权限。一个类似