繁体   English   中英

有没有办法运行 .NET Core 服务,该服务使用操作系统身份验证将 RMAN 备份作为 systemd 运行?

[英]Is there a way to run a .NET Core Service that uses OS authentication to run RMAN backups as systemd?

我在 C#/.NET Core 中设置了一个服务,它的部分功能是在每天的指定时间为 Oracle 启动 RMAN。 这些功能都可以完美地以 Oracle 用户身份运行,但不能以 root 身份或以 systemd 身份运行(即使我在 init 文件中包含了作为 oracle 运行的参数)。

尝试以 root 身份运行 RMAN 时出错Error as Root

ORA-12162: TNS:net 服务名称指定不正确

C#中的代码:

string oraHome = Environment.GetEnvironmentVariable("ORACLE_HOME");
            //execute powershell cmdlets or scripts using command arguments as process
            ProcessStartInfo processInfo = new ProcessStartInfo
            {
                FileName = $"{oraHome}/bin/rman",
                Arguments = $"NOCATALOG TARGET  / CMDFILE {RMANObjects.Backup}RMAN_{RMANObjects.sn}.rcv LOG {RMANObjects.Backup}backup_log_{RMANObjects.sn}.txt",
                RedirectStandardError = true,
                RedirectStandardOutput = true,
                UseShellExecute = false,
                CreateNoWindow = true
            };

            //start powershell process using process start info
            Process process = new Process();
            process.StartInfo = processInfo;
            process.Start();

RMANandLogMover 初始化/服务文件

 [Unit] Description=RMANandLogMover DefaultDependencies=no [Service] Type=notify WorkingDirectory=/home/oracle/app/RMANandLogMover/8.25Logmover ExecStart=/home/oracle/app/RMANandLogMover/8.25Logmover/RMANandLogMover Environment=ORACLE_HOME=/home/oracle/app/product/19.0.0/dbhome_1 User=oracle Group=backupdba RemainAfterExit=yes [Install] WantedBy=default.target

这里的问题不是所有的环境变量都被设置了。 我建议您先调用oraenv并确保您使用的是 oracle 的 os 用户,而不是任何其他用户

export ORACLE_HOME=<path>
export ORACLE_SID=orcl
export ORAENV_ASK=NO
. oraenv

首先对此进行编码,然后运行 ​​RMAN :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM