linux下的安装的数据库oracle11g2r 为啥闪回表之后用户中会出现临时表 详细操作以及具体问题如下。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux下的安装的数据库oracle11g2r 为啥闪回表之后用户中会出现临时表 详细操作以及具体问题如下。相关的知识,希望对你有一定的参考价值。

sys下创建表student

create table scott.student (sno int,sname char(10),sage int);
insert into scott.student values(1,'Tom',21);
insert into scott.student values(2,'Kite',22);
insert into scott.student values(3,'Bob',23);
insert into scott.student values(4,'Mike',24);
commit;

select * from current_scn from v$database;
current_scn
1118962

---------------
conn scott/scott
delete student
已删除四行

alter table student enable row movement;

flashback table student to scn 1118962;

select * from tab;

会多一个表 叫做SYS_TEMP_FBT

drop table SYS_TEMP_FBT;
第 1 行出现错误:
ORA-14452: 试图创建, 变更或删除正在使用的临时表中的索引
--------------
conn / as sysdba
sys用户也同样不让删除

shutdown immediate;
startup

---------
conn scott/scott
select * from tab;发现SYS_TEMP_FBT还在。
再次尝试
drop table SYS_TEMP_FBT;
表已删除。
该表已经可以被删除

尝试对其进行闪回drop操作

flashback table SYS_TEMP_FBT to before drop;

第 1 行出现错误:
ORA-38305: 对象不在回收站中

有前辈告我说 system 表空间的对象没有回收站,所以在sys下缺省使用system表空间时,drop table会直接删除对象 所以说SYS_TEMP_FBT 是存在于system表空间嘛?
还有就是 为什么在数据库未shutdown immediate之前删不掉啊。 我之前在网上搜了下 SYS_TEMP_FBT是一个临时表。 那么他是因为什么生成出来的呢。。求各位大佬帮我解解惑。。

参考技术A linux下的安装的数据库oracle11g2r 为什么闪回表之后用户中会出现临时表 详细操作以及具体问题如下。
如果开启闪回可以使用闪回表。 select log_mode,flashback_on from v$database; 如果是下面结果则开了闪回 LOG_MODE FLASHBACK_ON ------------ ------------------ ARCHIVELOG YES 可以执行以下命令 alter table 表名 enable row movement追问

这我都知道……就是不明白为什么select * from tab;会莫名出现一张tabtype为table的表SYS_TEMP_FBT?

redis 数据库在linux下的安装配置与使用

linux安装redis 完整步骤
(1)安装:
    1.获取redis资源

      wget http://download.redis.io/releases/redis-4.0.8.tar.gz

    2.解压

      tar xzvf redis-4.0.8.tar.gz

    3.安装

      cd redis-4.0.8

      make

      cd src

      make install PREFIX=/usr/local/redis

    4.移动配置文件到安装目录下

      cd ../

      mkdir /usr/local/redis/etc

      mv redis.conf /usr/local/redis/etc

    5.配置redis为后台启动

      vi /usr/local/redis/etc/redis.conf //将daemonize no 改成daemonize yes

    6.将redis加入到开机启动

      vi /etc/rc.local //在里面添加内容:/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf (意思就是开机调用这段开启redis的命令)

    7.开启redis

      /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf

常用命令  

  redis-server /usr/local/redis/etc/redis.conf //启动redis

  pkill redis //停止redis

  卸载redis:

    rm -rf /usr/local/redis //删除安装目录

    rm -rf /usr/bin/redis-* //删除所有redis相关命令脚本

    rm -rf /root/download/redis-4.0.4 //删除redis解压文件夹

 

(2)redis数据库配置密码:

  redis没有实现访问控制这个功能,但是它提供了一个轻量级的认证方式,可以编辑redis.conf配置来启用认证。

       1、初始化Redis密码:

         在配置文件中有个参数: requirepass  这个就是配置redis访问密码的参数;比如 requirepass 123456;(Ps:需重启Redis才能生效)

         redis的查询速度是非常快的,外部用户一秒内可以尝试多大150K个密码;所以密码要尽量长(对于DBA 没有必要必须记住密码);

       2、不重启Redis设置密码:

       (ps:要进入redis命令栏需要使用命令redis-cli 若显示无此命令请进入你的redis安装包中,cd redis-4.0.8/src/ 并使用./redis-cli 命令即可进入)

         在配置文件中配置requirepass的密码(当redis重启时密码依然有效)。

         redis 127.0.0.1:6379> config set requirepass 123456

         查询密码:

         redis 127.0.0.1:6379> config get requirepass
         (error) ERR operation not permitted

         密码验证:

         redis 127.0.0.1:6379> auth 123456
         OK

         再次查询:

         redis 127.0.0.1:6379> config get requirepass
         1) "requirepass"
         2) "123456"

         PS:如果配置文件中没添加密码 那么redis重启后,密码失效;

       3、登陆有密码的Redis:

         在登录的时候的时候输入密码:

         redis-cli -p 6379 -a test123

         先登陆后验证:

         redis-cli -p 6379

         redis 127.0.0.1:6379> auth 123456
         OK

         AUTH命令跟其他redis命令一样,是没有加密的;阻止不了攻击者在网络上窃取你的密码;

     认证层的目标是提供多一层的保护。如果防火墙或者用来保护redis的系统防御外部攻击失败的话,外部用户如果没有通过密码认证还是无法访问redis的。

(3)RedisDesktopManager(类似navicat之类的工具,有需要自己去google)

 

以上是关于linux下的安装的数据库oracle11g2r 为啥闪回表之后用户中会出现临时表 详细操作以及具体问题如下。的主要内容,如果未能解决你的问题,请参考以下文章

Linux下的Oracle11g 监听和数据库实例均启动了但是客户端无法连接

PL/SQL developer连接oracle11g2

Linux下的Oracle11g 监听和数据库实例均已启动,但客户端无法连接的原因是啥

Linux安装Oracle 11G过程(测试未写完)

linux下oracle 11g怎么执行脚本生成hr用户名

oracle 11g windows下安装啥windows