暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 我想使用Ansible自动执行此操作

askTom 2021-09-20
728

问题描述

修复文本
从DBMS中删除任何演示和示例数据库、数据库应用程序、对象和文件。

删除帐户及其所有对象(以BI为例) :
删除用户Bi级联;

要删除对象而不删除其所有者,请使用适当的“删除”语句(DRAP TABLE、“删除”视图等)。

这是检查:

确保删除所有示例模式
从dba_users中选择不同的(用户名) ,其中的用户名
('BI','HR','OE','PM','IX','SH','SCOTT');

预期结果:

预期成果:未返回任何行。如果返回行,则删除用户。
sqlplus / as sysdba
下级用户双级联;
丢弃用户hr级联;
丢弃用户oe级联;
丢弃用户pm级联;
丢弃用户级联;
丢弃用户sh级联;
落款用户斯科特级联;

专家解答

创建一个文件,如果有必要,该文件会删除并且不会返回错误,例如

conn / as sysdba
declare
  procedure du(p_user varchar2) is
  begin
    execute immediate 'drop user '||p_user||' cascade';
  exception
    when others then
      if sqlcode != -01918 then raise; end if;
  end;
hegin
  du('bi');
  du('hr');
  du('oe');
  du('pm');
  du('is');
  du('sh');
  du('scott');
end;
/


然后你的屁股就会变成

- hosts: all
 vars:
 oracle_base: /u01/app/oracle
 oracle_home: /u01/app/oracle/product/19.10/dbhome_1
 target_dir: /tmp
 remote_user: oracle
 sudo_user: root
 sudo: false
 tasks: 

- name: copy sqlscript
 copy: src=files/{{ item }} dest={{ target_dir }} owner=oracle group=oinstall mode=0644
 with_items:
 - drop_sample_schemas.sql
 

- name: copy sqlscript
 action: shell unzip -oq {{ patch_dir }}/p6880880_112000_Linux-x86-64.zip -d {{ oracle_home }}  

- name: run sqlscript
 action: shell export ORACLE_HOME={{ oracle_home }}; cd {{ target_dir }}; $ORACLE_HOME/bin/sqlplus /nolog @drop_sample_schemas
 register: error_found
 failed_when: "'ORA-" passed.' in error_found.stdout"



(我强调-我不是专家)
文章转载自askTom,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论