Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
SomeDude
Contributor
Contributor

create permission check failed for oracle directory objects

DBA will not grant CREATE ANY DIRECTORY privilege. He says oracle directories for REDO and ARCHIVED logs are already created and READ was granted to QLIKREPLICATE user and I don't need to create them.

How do I set the names of the directories in the Qlik replication configuration and skip the CREATE DIRECTORY step?

Thanks

Labels (2)
2 Solutions

Accepted Solutions
SwathiPulagam
Support
Support

Hi @SomeDude ,

If your source is Oracle:

 

If you want Replicate to create and manage the Oracle directories, you need to grant the CREATE ANY DIRECTORY privilege specified above. Note that the directory names will be prefixed with attrep_. If you do not grant this privilege, you need to create the corresponding directories manually. The names of directories that are created manually must not be prefixed with ATTUREP_, ATTUTMP_, or ATTUGRP_. If you create the directories manually and the Oracle user specified in the Oracle Source endpoint is not the user that created the Oracle Directories, grant the READ on DIRECTORY privilege as well.

 

If your source is RDS Oracle:

Set up the supplemental logging.

The following steps are relevant only when using Replicate Log Reader to access the redo logs.

Create directories for online and archived logs

Before you can use Replicate Log Reader, you need to create directories for the online and archived logs.

To create the directories, run the following commands:

exec rdsadmin.rdsadmin_master_util.create_archivelog_dir;

exec rdsadmin.rdsadmin_master_util.create_onlinelog_dir;

To remove the directories (if there are no ongoing replication tasks), run the following commands:

exec rdsadmin.rdsadmin_master_util.drop_archivelog_dir;

exec rdsadmin.rdsadmin_master_util.drop_onlinelog_dir;

 

For more information please refer to the below user guide link:

https://help.qlik.com/en-US/replicate/November2021/Content/Replicate/Main/Oracle/Work_with_Oracle_on...

 

Thanks,

Swathi

View solution in original post

lyka
Support
Support

Hello,

If you are getting this message when you test the endpoint, its most likely a warning that you can safely ignore.

 

Thanks

Lyka

View solution in original post

13 Replies
lyka
Support
Support

Hello,

You need to create the corresponding directories manually. The names of directories that are created manually must not be prefixed with ATTUREP_, ATTUTMP_, or ATTUGRP_. If you create the directories manually and the Oracle user specified in the Oracle Source endpoint is not the user that created the Oracle Directories, grant the READ on DIRECTORY privilege as well.

 

Sample SQL Statements: create or replace directory _ATTU_ONLINE as <’ONLINE_REDO_PATH’> create or replace directory _ATTU_ARCHIVE as <’ARCHIVE_LOG_PATH’> create or replace directory _ATTU_ALTERNATIVE as <'ALTERNATIVE_PATH define in endpoint'> GRANT SELECT ON dba_directories TO ARUSER; --- Please not include the last '\' in path. E.g. following definition will lead “directory can’t be found” error. Create directory ABC_ATTU_ONLINE as c:\Oracle\online\’

 

Hope this helps!

 

Thanks

Lyka

SwathiPulagam
Support
Support

Hi @SomeDude ,

If your source is Oracle:

 

If you want Replicate to create and manage the Oracle directories, you need to grant the CREATE ANY DIRECTORY privilege specified above. Note that the directory names will be prefixed with attrep_. If you do not grant this privilege, you need to create the corresponding directories manually. The names of directories that are created manually must not be prefixed with ATTUREP_, ATTUTMP_, or ATTUGRP_. If you create the directories manually and the Oracle user specified in the Oracle Source endpoint is not the user that created the Oracle Directories, grant the READ on DIRECTORY privilege as well.

 

If your source is RDS Oracle:

Set up the supplemental logging.

The following steps are relevant only when using Replicate Log Reader to access the redo logs.

Create directories for online and archived logs

Before you can use Replicate Log Reader, you need to create directories for the online and archived logs.

To create the directories, run the following commands:

exec rdsadmin.rdsadmin_master_util.create_archivelog_dir;

exec rdsadmin.rdsadmin_master_util.create_onlinelog_dir;

To remove the directories (if there are no ongoing replication tasks), run the following commands:

exec rdsadmin.rdsadmin_master_util.drop_archivelog_dir;

exec rdsadmin.rdsadmin_master_util.drop_onlinelog_dir;

 

For more information please refer to the below user guide link:

https://help.qlik.com/en-US/replicate/November2021/Content/Replicate/Main/Oracle/Work_with_Oracle_on...

 

Thanks,

Swathi

Michael_Litz
Support
Support

Hi Some Dude,

 

There is also an article in the Qlik knowledge base that discusses this topic that may help out.

https://community.qlik.com/t5/Knowledge/Why-does-Replicate-perform-create-directory-and-drop-directo...

Thank you,
Michael Litz
Support Engineer
SomeDude
Contributor
Contributor
Author

Thanks for that. Directories were created and READ permission granted to the QlikReplicate user. We are still getting the "create permission check failed for oracle directory objects" message. Is there something we need to do to get around this error, like manually entering the directory names in the Replicate configuration?

lyka
Support
Support

Hello,

If you are getting this message when you test the endpoint, its most likely a warning that you can safely ignore.

 

Thanks

Lyka

adershb
Partner - Contributor III
Partner - Contributor III

Hello @lyka 

We have created a new source end-point for DR database of primary. While testing the DR source end-point getting this warning "create permission check failed for oracle directory objects" . Primary site source end-point is working and task is running fine. This is just for the DR readiness we created the source DR end-points and tried to validate it. in DR site the physical standby is in read only mode with apply as below. 

 

NAME      OPEN_MODE            DATABASE_ROLE

--------- -------------------- ----------------

AG0001P   READ ONLY WITH APPLY PHYSICAL STANDBY

At the same time when we try to validate the DR site source connection through sqlplus it is working fine. Why the source end-point is giving this warning ? Hence we cannot validate the SR source end-points. 

Please advise. 

 

Thanks,

Adersh

john_wang
Support
Support

Hello @adershb ,

The warning "create permission check failed for oracle directory objects" can be safely ignored if you are accessing standby node of Oracle source. This warning only show up in EndPoint Connection Test. It does not impact the task running.

Hope this helps.

Regards,

John.

Help users find answers! Do not forget to mark a solution that worked for you! If already marked, give it a thumbs up!
adershb
Partner - Contributor III
Partner - Contributor III

Hello @john_wang , 

We would like to validate the DR source end-points as part of the DR readiness. Due to this warning the test connection of source DR end-points are not passed. We are not sure the end-points are working or not. How do we validate it. At the same time sqlplus connection from replicate server to source DR is working fine. What is the reason for this warning? Please advise. 

 

Thanks, 
Adersh

john_wang
Support
Support

Hello @adershb ,

As DR node is some special (eg it's read-only ) and Replicate needs some additional privileges (eg SELECT on V$STANDBY_LOG), there is chance to get the warning.

The way to know the reason is checking the "repsrv.log" file after you press the "Test Connection" button. Steps:

1- Set "Server" --> "Server Logging Levels" --> "SERVER" to "Verbose"ServerLogging.jpg

 

2- Press "Test Connection" then check the "repsrv.log". The file show what's the operations/SQLs are done during the Test Connection.

Best Regards,

John.

Help users find answers! Do not forget to mark a solution that worked for you! If already marked, give it a thumbs up!