使用Ansible如何在Linux上连接Oracle数据库&运行命令“show pdb”以显示Oracle可插入数据库,“shutdown immediate”以停止数据库并启动数据库

lmyy7pcs  于 2023-08-03  发布在  Oracle
关注(0)|答案(1)|浏览(141)

使用Ansible如何在Linux机器上连接Oracle数据库,使用命令“show pdb”显示Oracle可插入数据库,“shutdown immediate”停止数据库并启动数据库。请指导。我已经尝试了下面的代码,它将从/etc/oratab文件复制oracle主路径,并以sysdba用户身份连接数据库,以show pdbs的形式运行命令,立即关闭并在需要的任何地方启动。
cat /etc/oratab(Oratab字段输出)+ASM:/u 01/app/oracle/19.3.0.0/grid:N #由代理添加的行CDB 123:/u 01/app/oracle/product/19.3.0.0/db_1:N #由代理添加的行
我试过的代码:

  • 名称:连接到Oracle DB命令:CDBS = /etc/oratab |egrep -v '^#|^$' |grep -v ASM |grep -v agent for CDB in CDBS do CDB_NAME= echo $CDB |awk -f":" '{print $1}' ORACLE_HOME== echo $CDB |awk -f":" '{print $2}' $ORACLE_HOME/bin/sqlplus / as sysdba <<EOF show pdbs EOF done

错误提示:我们无法读取JSON和YAML,这些是我们从每个错误中得到的错误:JSON:无法解码JSON对象
加载YAML时语法错误。在此上下文中不允许使用Map值
错误出现在“/home/yogeshka/DB_tools/ansible/db_server_new/roles/oracle_patch/tasks/main. yml”中:第85行第12列,但是根据确切的语法问题,也可以在文件中的其他地方。
这句话的意思似乎是:

  • 名称:连接到Oracle DB命令:CDBS = /etc/oratab |egrep -v '^#|^$' |grep -v ASM |grep -v agent ^此处

尝试在linux机器上使用ansible连接oracle数据库。寻找代码修复连接数据库,关闭数据库,启动数据库时,它需要的。

0aydgbwb

0aydgbwb1#

我使用函数json_object从数据库返回一个有效的JSON文档。

- name: query database
  become: oracle
  shell:
    cmd: |
      $ORACLE_HOME/bin/sqlplus -S / as sysdba <<EOF
      set feedback off
      set heading off
      SET SERVEROUTPUT ON SIZE 5000;
      SET LINESIZE 2500;
      set pagesize 5000;
      set long 5000;
      select json_object('db_version' VALUE  BANNER) from v\$version;
      EOF
  register: simple_out
  environment:
    ORACLE_HOME: "{{ oracle_home }}"
    ORACLE_SID: "ORCL"
    LD_LIBRARY_PATH: "{{ oracle_home }}/lib"

- name: Transform response
  set_fact:
    simple_json: "{{ simple_out.stdout|from_json }}"
- name: Show result
  debug:
    var: simple_json

字符串
祝你好运!

相关问题