Script de mandatos del programa de utilidad de limpieza de base de datos
El programa de utilidad de limpieza de base de datos (dbclean) elimina objetos obsoletos o no utilizados de la base de datos.
Antes de empezar
Ejecute este programa de utilidad desde la Utility server Docker container. Para obtener más información, consulte Ejecución de programas de utilidad desde Utility server Docker container.
![Diagrama de sintaxis para ejecutar el programa de utilidad dbclean](../images/duutilityfp9.gif)
Valores de parámetros
- object
- Necesario. El nombre del objeto que se va a eliminar. Para obtener más información sobre los nombres de objeto, consulte Objetos del programa de utilidad de Limpieza de base de datos.
- tipo
- Necesario. El tipo de objeto que desea eliminar. Para obtener más información sobre el tipo que hay que especificar con un objeto, consulte Objetos del programa de utilidad de Limpieza de base de datos.
- instancexml
- Necesario. La vía de acceso absoluta al archivo de configuración de HCL Commerce.
- db
- Opcional: el nombre de la base de datos, codificada como URL de patrón de JDBC de tipo 4. Si deja este campo en blanco, el programa de utilidad lee la información de base de datos desde la instancia.
- dbuser
- Opcional: el ID de inicio de sesión del administrador que ha creado el esquema o el administrador de sitio de la base de datos. Si este parámetro no se especifica, se invoca el ID del usuario que invoca el programa de utilidad.
- dbschema
- Opcional: el nombre del esquema de base de datos. Este parámetro permite que un usuario ejecute el programa de utilidad dbschema con un ID de usuario que no sea el ID de usuario especificado para el parámetro dbuser.
- dbpasswd
- Opcional: la contraseña del ID de conexión especificada por el parámetro dbuser o dbschema. Si no se ha especificado, el sistema le solicita que escriba la contraseña.
- dbtype
- Opcional: el tipo de base de datos. El valor predeterminado es DB2. También puede especificar oracle.
- check_object_only
-
Opcional: Si la opción check_object_only se establece en sí, se comprueba cada una de las tablas hijo para ver si la tabla se ve afectada en caso de eliminar la tabla padre. Si la tabla hijo se ve afectada, el programa de utilidad dbclean suprime restricciones, lo que significa que el padre no se puede eliminar.dbclean Si la tabla hijo no se ve afectada, la tabla padre se puede eliminar. Por ejemplo, si se va a eliminar OrderItem, puede afectar al propietario de OrderItem, que puede ser un usuario invitado con nada más excepto OrderItem. Por ejemplo, si se va a eliminar un artículo de pedido, puede afectar al propietario del mismo, que puede ser un usuario invitado que solo tenga ese artículo de pedido. El programa de utilidad no efectúa la comprobación si deja el parámetro establecido en no (el valor predeterminado).no Esta información puede encontrarse en el archivo de anotaciones cronológicas. El programa de utilidad no realiza una comprobación si deja el parámetro en no (el valor predeterminado). Esta información se puede encontrar en el archivo de registro.
No incluya este parámetro cuando ejecute el programa de utilidad en la modalidad fuera de línea.
- commit
-
Opcional: el número de filas que se suprimen en cada compromiso. El valor predeterminado es 1000.Si el parámetro offlinemode se establece en yes, el programa de utilidad utiliza dos recuentos de compromisos. Uno para la tabla raíz y el otro para todas las tablas hijo. El recuento de compromisos para la tabla raíz utiliza el valor especificado para el parámetro commit o el valor predeterminado si no se especifica ningún valor. El recuento de compromisos para las tablas hijo lo determina una fórmula.
Esta fórmula utiliza los valores especificados para los parámetros commit y max. El valor del parámetrochild_commit_count = (commit * commit); while (childCommitCnt >= max) { childCommitCnt /= 2; } if(0 == childCommitCnt) { childCommitCnt = commit; }
max
establece el límite para el tamaño del conjunto de datos que se va a eliminar en la operación de limpieza. Este valor se utiliza en la fórmula para asegurarse de que la cuenta de compromisos es lo bastante grande para evitar el exceso de compromisos, que puede afectar al rendimiento de la base de datos. El valor del parámetro commit se utiliza para asegurarse de que el recuento de compromisos no es lo bastante grande en comparación con el valor de parámetromax
. Al garantizar que el recuento de confirmaciones no sea demasiado grande, el programa de utilidad puede evitar cualquier consumo rápido de recursos, como el que realiza el archivo de registro de transacciones. - max
-
Opcional: el número máximo de objetos que se suprimirán para toda la ejecución viene determinado por el parámetro de compromiso con este valor de parámetro max. El valor predeterminado es 100000. El número máximo de filas se suprimen de acuerdo con un múltiplo del valor de compromiso que cumple o excede el valor de parámetro max.
Por ejemplo, si especifica el valor max a 35 y el valor comprometido a 20, las supresiones se comprometen cada 20 filas. El número máximo de filas que se suprimen es 40 porque 40 es el número más próximo múltiplo de la confirmación que sobrepasa el valor de parámetro max. Si especifica max20 y compromete35, el número máximo de filas que se suprime es 35.
- registro
- Opcional: la vía de acceso y el nombre del archivo de anotaciones cronológicas en el que el programa de utilidad registra sus actividades. El emisor de este programa de utilidad debe tener autorización de escritura a la vía de acceso especificada y la vía de acceso debe existir. Si este parámetro no se especifica, se crea un archivo de registro denominado DBClean.timestamp.log en el directorio siguiente: WC_eardir/xml/logs/DBClean/.
- loglevel
- Opcional: El nivel de anotación cronológica que se realizará durante la limpieza de la base de datos. Los niveles de registro disponibles son NONE, ERROR, WARNING, NORMAL, INFO/VERBOSE o DEBUG. El valor predeterminado es NONE.
- days
- Opcional: el número mínimo de días de antigüedad que debe tener un registro para que se pueda suprimir.
- name
- Opcional: el ID del objeto que se ha de suprimir. Este parámetro es necesario si se ha indicado member como valor para el parámetro organization y se ha indicado organization como el valor de tipo.
- jdbcDriver
- Opcional: el controlador JDBC que se va a utilizar. El valor predeterminado depende del tipo de base de datos. Por ejemplo, si utiliza DB2, el controlador JDBC podría ser com.ibm.db2.jcc.DB2Driver . Si utiliza Oracle, el controlador JDBC puede ser oracle.jdbc.OracleDriver.
- jdbcUrlPrefix
- Opcional: el prefijo de URL para el controlador JDBC especificado. El valor predeterminado depende del tipo de base de datos. Por ejemplo, si utiliza DB2, el prefijo URL de JDBC podría ser jdbc:db2://.
- jdbcCustomizer
-
Opcional: especifica la ubicación del archivo de personalización que se debe utilizar con el programa de utilidad de limpieza de base de datos. Puede especificar valores para los parámetros jdbcDriver y jdbcUrlPrefix en el formato argumento=valor en cada línea dentro del archivo.
Este parámetro está en desuso. Considere la posibilidad de utilizar el parámetro de
paramfile
en su lugar.El valor predeterminado es
jdbcDriver=com.ibm.db2.jcc.DB2Driver jdbcUrlPrefix=jdbc:db2://
. Otras combinaciones pueden funcionar pero no se han probado. - sqlmode
-
Opcional: puede establecer los siguientes valores para este parámetro:
- 1
- Modalidad directa. La sentencia DELETE que se recupera de la tabla CLEANCONF se ejecuta directamente sin ninguna modificación del programa de utilidad. El conjunto de resultados del SQL se compromete con la base de datos hasta que se alcanza el valor del parámetro max. Cuando establece el valor para el parámetro sqlmode en 1, asegúrese de que también establece el parámetro commit en 1.
- 0
- El valor predeterminado. El programa de utilidad predeterminado con todos los parámetros respetados incluido el contador de compromisos. El comportamiento del programa de utilidad dbclean predeterminado puede mejorar los SQL recuperados de la tabla CLEANCONF.
No incluya este parámetro cuando ejecute el programa de utilidad en la modalidad fuera de línea.
- dbauser
- Opcional: el nombre de usuario administrador de base de datos. Si el nombre de administrador de base de datos no se incluye como parámetro en la línea de mandatos, el nombre se recupera del archivo instance_name.xml. Si el nombre tampoco se incluye en este archivo, se le solicitará que especifique el valor al ejecutar el programa de utilidad.
- dbapasswd
- Opcional: la contraseña de administrador de base de datos. Si la contraseña de administrador de la base de datos no se incluye como parámetro en la línea de mandatos, la contraseña se recupera del archivo instance_name.xml. Si la contraseña tampoco se incluye en este archivo, se le solicitará que especifique el valor al ejecutar el programa de utilidad.
- sqlParam%
-
Opcional: indica que el valor para este parámetro va a sustituir un marcador de parámetro en la sentencia SQL para el objeto que está almacenado en la tabla de base de datos CLEANCONF. El carácter % en el parámetro representa el índice del marcador de parámetro.% El índice debe empezar en 1. El índice debe comenzar en 1. El parámetro sqlParam% no se puede utilizar con los parámetros SQL days y name. Si se utilizan varios sqlParam% para los marcadores de parámetros, debe aumentar el índice secuencialmente para el parámetro sqlParam% en el comando del programa de utilidad. Por ejemplo, puede incluir los siguientes parámetros sqlParam% en la línea de mandatos:
Estos parámetros pueden enlazarse con los correspondientes marcadores de parámetros,-sqlParam1 0 -sqlParam2 2 -sqlParam3 4
1
,2
y3
dentro de la siguiente sentencia SQL:
Después de ejecutar el mandato de programa de utilidad, los marcadores de parámetros se sustituyen por los valores para el sqlParam% en el mandato. Por ejemplo,delete from member where member_id in (select users_id from users where (current_timestamp - lastupdatetimestamp)> ? and users_id > ? and not exists (select 1 from orders where orders_id=?))
delete from member where member_id in (select users_id from users where (current_timestamp - lastupdatetimestamp)> 0 and users_id > 2 and not exists (select 1 from orders where orders_id=4))
- paramfile
-
Opcional: especifica la vía de acceso al archivo de parámetros que incluye argumentos de línea de mandatos y valores. Cada argumento y valor necesita estar en el formato
argument=value
con un solo argumento y valor en cada línea del archivo. Las contraseñas de este archivo de parámetros deben estar cifradas. - offlinemode
- Opcional: Indica que el programa de utilidad de limpieza de la base de datos debe ejecutarse fuera de línea y utilizar la generación de hebras además de las supresiones explícitas para limpiar la base de datos. Si ejecuta el programa de utilidad fuera de línea, puede reducir el impacto en el rendimiento que produce la supresión de jerarquías de tablas profundamente o ampliamente anidadas de objetos de usuario. Para obtener más información sobre la ejecución del programa de utilidad fuera de línea, consulte Programa de utilidad de Limpieza de base de datos. Puede establecer los siguientes valores para este parámetro:
- sí
- El programa de utilidad de limpieza de base de datos se ejecuta en modalidad fuera de línea. El programa de utilidad no puede detectar si el entorno está fuera de línea. El programa de utilidad le solicita que confirme que el entorno está fuera de línea.
- No
- El programa de utilidad de limpieza de base de datos se ejecuta en modalidad en línea. Este valor es el valor predeterminado.
Antes de ejecutar el programa de utilidad en modalidad fuera de línea, revise las siguientes consideraciones y limitaciones: - prunelevel
-
Opcional: un entero que indica el número de niveles debajo de la tabla raíz dentro de una jerarquía de tablas que el programa de utilidad comprueba si hay registros de objeto que se deben suprimir. Si una tabla, y cualquier tabla hijo que se comprueba, no incluye objetos a eliminar, la tabla se elimina de la operación de limpieza. La eliminación de las tablas reduce el tamaño de la operación de limpieza, que puede mejorar la eficacia del proceso de limpieza. Puede utilizar este parámetro solamente cuando se ejecuta el programa de utilidad fuera de línea. Al aumentar el número de niveles de jerarquía que se deben comprobar, se incluyen más tablas y registros en el proceso de comprobación y el número de comprobaciones aumenta, lo que pueden afectar al rendimiento del programa de utilidad. El valor predeterminado es 2.
Para obtener más información sobre cómo el programa de utilidad comprueba y limpia las tablas cuando el programa de utilidad se ejecuta fuera de línea, consulte Programa de utilidad de Limpieza de base de datos.
- threadCount
- Opcional: indica el número máximo de hebras que el programa de utilidad puede ejecutar simultáneamente. Puede utilizar este parámetro solamente cuando se ejecuta el programa de utilidad fuera de línea.
- validatedel
-
Opcional: indica si el programa de utilidad valida que los objetos se suprimen de la base de datos. Puede utilizar este parámetro solamente cuando se ejecuta el programa de utilidad fuera de línea. Puede establecer los siguientes valores para este parámetro:
- sí
- Ejecute la comprobación de validación.
- No
- No ejecute la comprobación de validación. Este valor es el valor predeterminado.
- En lo referente al progreso de la limpieza, consulte el archivo de registro DBClean.timestamp.log, que se encuentra en el directorio WC_eardir/xml/logs/DBClean. El nivel de anotación cronológica puede ser NONE, ERROR, WARNING, NORMAL, INFO/VERBOSE o DEBUG. Por omisión, el nivel de las anotaciones está establecido en DEBUG.
- Si se produce un error irrecuperable durante la limpieza, consulte el archivo de utilities_root/instances/instance_name/logs/DBClean/System.timestamp.Properties. El programa de utilidad de Limpieza de base de datos se detiene automáticamente y las propiedades de la JVM se almacenan en este archivo.
- Si desea eliminar los archivos obsoletos que están asociados con elementos de datos, ejecute el siguiente script: utilities_root/instances/instance_name/logs/DBClean/clean.asset.object.type.timestamp.sh
Ejemplo: Supresión de objetos de usuario
./dbclean.sh -object user -type registered -instancexml /opt/WebSphere/CommerceServer90/instances/demo/xml/demo.xml -db CD040302 -commit 500 -max 8000 -check_object_only yes
Ejemplo: Modo fuera de línea
./dbclean.sh -object user -type registered -instancexml /opt/WebSphere/CommerceServer90/instances/demo/xml/demo.xml -db CD040302 -commit 500 -max 8000 -dbschema wcs -dbauser Tomsmith -dbauserpwd myadminpassword -dbuser johnsmith -dbpasswd mypasword -offlinemode yes -validatedel yes -prunelevel 2