oracle 问题解决笔记
1.Oracle查看用户密码过期,修改永不过期
01、查看当前open用户#
select username,account_status,expiry_date,profile from dba_users;
02、查看目前的密码过期策略#
select * from dba_profiles s where s.profile='DEFAULT' and resource_name='PASSWORD_LIFE_TIME';
03、修改密码过期策略#
alter profile default limit password_life_time unlimited;
04、过期的账户,重置密码后期不会再过期#
sqlplus /nolog
conn /as sysdba
alter user smsc identified by <原来的密码> ----不用换新密码
2.oracle 安装完成后,ip发生改变,连不上监听
1.查看listener.ora的内容,app\Administrator\product\11.2.0\dbhome_1\network\admin\listener.ora,修改监听的ip,端口号,ORACLE_HOME、ENVS 地址是否正确,还是不行注释掉 (PROGRAM = extproc),前面加# 号
SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = orcl) (ORACLE_HOME = D:\app\Administrator\product\11.2.0\dbhome_1) # (PROGRAM = extproc) (ENVS = "EXTPROC_DLLS=ONLY:D:\app\Administrator\product\11.2.0\dbhome_1\BIN\oraclr11.dll") ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) ) ) ADR_BASE_LISTENER = D:\app\Administrator
3.使用plsql Developer连接时,oracle11g 客户端,连接oracle 12c 服务器,发现报ora-28040 No matching authentication protocol
在默认情况下Oracle12.2对客户端版本有限制的,我们客户端版本是11g以下的
1.下载oracle 12c 客户端,进入 https://edelivery.oracle.com/osdc/faces/SoftwareDelivery;jsessionid=x7UR_fI7cfkJWYmoad2QbtQMvuHRpxVI0bXF0lFmWTP2NqqUyER3!-2063007283 下载客户端
2.安装oracle12c 客户端,直接下一步安装
如果安装第一步,出现无法打开服务器服务性能对象,在cmd中执行命令,切换到oracle的安装目录,执行命令:setup.exe -ignorePrereq -J"-Doracle.install.client.validate.clientSupportedOSCheck=false",跳过第一步检查的内容
3.plsqldev 选择客户端,tools-preferences,设置客户端地址
4.误删数据库表恢复
FLASHBACK TABLE tableName TO BEFORE DROP;
即彻底删除某张表:
drop table tableName purge;
5.数据库闪回表数据
1.开启行移动
ALTER TABLE 表名称 ENABLE ROW MOVEMENT;
2. //闪回
FLASHBACK TABLE 表名称 TO TIMESTAMP TO_DATE('2022-04-10 11:33:00','YYYY-MM-DD HH24:MI:SS');
//闪回30分钟之前数据
flashback table 表名 to timestamp( systimestamp - 30/1440);
flashback table 表名 to timestamp(systimestamp-interval'120'minute);(返回到120分钟以前的数据);
3.关闭行移动
ALTER TABLE test_a DISABLE ROW MOVEMENT;
6.删除归档日志
RMAN target 账号/密码@实例名;
DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';
SYSDATA-7,表明当前的系统时间 7 天前,before 关键字表示在 7 天前的归档日志,如果使用了闪回功能,也会删除闪回的数据。
7.非系统表空间 ‘XXX‘不能使用系统回退段 ORA-01552
故障分析:
UNDO表空间数据文件受损,导致执行更新操作失败。
故障解决:
创建的新的undo表空间,undo_management置为MANUAL,重置undo指向新的undo表空间,undo_management置为AUTO,正常打开数据库。
执行步骤如下:
SQL> create undo tablespace undotbs2 datafile 'D:\app\Administrator\oradata\orcl\UNDOTBS02.dbf' size 3g;
SQL> alter system set undo_management=manual scope=spfile;
SQL> shutdown immediate;
SQL> startup
SQL> alter system set undo_tablespace=undotbs2 scope=spfile;
SQL> alter system set undo_management=auto scope=spfile;
SQL> shutdown immediate;
SQL> startup